自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 PHP自动加载

本文将介绍PHP自动加载这块基础中的基础,鄙人造化不深,技术浅薄,所写均为个人学习过程与体会的记录。以后通过理论与实践结合,得到更扎实更深入更有含量的收获,鄙人也会及时梳理出来。回到标题,我们写代码的时候,无论用什么语言,都会涉及到要加载很多原生的或第三方的各种库/包/文件等等,毕竟,我们总需要用到很多别人造好的轮子,这些轮子没有必要自己重复劳动搞一遍(除非是算法笔试题),PHP也不例外。接下来,咱赶紧进入正文。手动加载在讨论自动加载之前,先看看PHP最原始的加载方式:通过includ.

2021-03-19 16:22:24 350

原创 PHP命名空间

简介为了避免代码中自定义的类、函数、常量等标识符,与PHP内置或第三方库中的已有标识符重名导致冲突,PHP从5.3版本开始支持命名空间,旨在给原本同名的标识符加上命名空间前缀,从而在代码中区分它们。命名空间实际上是解决上述问题的一种思想和方案,许多高级语言都提供了不同形式的支持。接下来,本文从简入手,介绍PHP命名空间的基础。定义命名空间定义命名空间的最简单形式,是在PHP代码开头,通过namespace关键字声明,指定该文件中自定义的类、函数、常量标识符均属于声明的命名空间之下。例如.

2021-03-16 17:38:57 218 1

原创 在C#的Web项目中调用Matlab代码的方法

为了毕设的图形检索方向的研究,本人需要在信科的师兄师姐们已经完成的C#界面中,调用现在研究的算法的Matlab代码,以便看到实验的效果。前段时间已经拖延了1个多月,一方面因为实习越来越多事情,时间减少了很多;但更重要在于C#调用Matlab的方法真心麻烦,C#的Web项目中进行这个操作貌似会碰到更多细节上的问题。而且总是很不稳定,操作系统、Matlab或VS的版本、遗漏一些文件或步骤都会造成失败!

2015-04-17 00:34:57 4326 3

原创 关于precision-recall曲线下降特性的探讨

本人的毕设由于涉及到检索,需要使用准确率与召回率(precision-recall)指标衡量检索算法的有效性。众所周知,precision-recall曲线通常呈下降趋势,也即使用同一检索方法对不同检索用例进行检索,若检索结果的准确率越高,召回率总会反而越低。本人对这一现象表示好奇,一直想搞明白其中的道理,也在网上查过相关资料。但暂时未发现有人系统地讨论过原因,大多数都是炒冷饭式的描述:两者并无必

2015-04-16 01:13:38 4611

原创 排序11:计数排序

这里再介绍一种排序算法,该方法也是不需要进行元素间的bij

2014-09-30 23:10:37 535

原创 排序10:基数排序

基数排序是一种与之前所介绍的排序算法截然不同的排序方法。前面所介绍的排序方法中,都有着共同的一种操作:元素间的比较。而基数排序则不是基于元素间的比较来驱动整个排序过程的,后文将会详细展开介绍。另外,基数排序需要做一些准备工作,以序列中最大者为准,我们需要让其它元素的位数与最大者的位数一致,比它少的则要在数值前补0。这步的目的在于让序列全体元素的位数一致。我们很快会发现,基数排序过程需要操作元素的数

2014-09-28 18:06:23 781

原创 排序9:归并排序

归并排序正如其名,它是通过归并操作来达到排序的目的的,最经典的归并操作当然是2路归并了,任意多路归并实际上也是同理推广而已。因此,归并排序也相应有2路归并排序和任意多路归并排序。简单起见,本文只介绍2路归并排序。另外,本文假定读者已经了解线性表的归并操作,如果读者未接触过归并的知识点,可以先自行了解一下。本人认为归并操作非常基础也非常简单,相信读者完全能很快掌握。       以序列:49、3

2014-09-28 15:53:02 904

原创 排序8:选择排序(堆排序)

堆排序是选择排序中能对元素个数较多的序列进行相对高效排序的算法。排序过程中,要用到一种叫堆的数据结构,这种堆实际上可看作是完全二叉树的数组实现,只是加多个限制:父结点存储的元素值必须同时不小于两个子结点所存储的元素值(此为大顶堆,用于产生从小到大序列的堆排序。若要求父结点存储的元素值必须同时不大于两个子结点所存储的元素值,便产生小顶堆,此可用于产生从大到小序列的堆排序)。要进行堆排序,首先要对初始

2014-09-26 12:03:17 757

原创 排序7:选择排序(简单选择排序)

选择排序顾名思义,就是从序列中依次选择最小的、次小的、第3小的、……,让这些元素分别作为结果序列的第1个、第2个、第3个、……,或者,从序列中依次选择最大的、次大的、第3大的、……,让这些元素分别作为结果序列的最后、次后、倒数第3个、……。由此达到排序的目的。当然,这种描述只是大体的思想,不同的选择排序会在实现细节上体现出不同的做法。下面,我们先看看简单选择排序。       以序列:49、3

2014-09-26 11:41:11 1018

原创 排序6:交换排序(快速排序)

本文要介绍的快速排序是交换排序的高级算法,同时,它也是C++的STL算法库里头,排序函数所实现的算法。由此可见,快速排序是比较重要而高效的排序方法,对于元素个数比较多的序列而言,可以适时使用该算法进行高效排序。       以序列:49、38、65、97、76、13、27、49为例。开始时,设置i、j 分别指向序列的头49、尾49。先随意固定其中一者,并开始平移另一者,此处以先固定 i

2014-09-26 09:56:13 622

原创 排序5:交换排序(冒泡排序)

插入排序概括起来,就是把序列分为有序与无序两部分,每趟排序从无序部分选取元素,并通过各种手段在有序部分寻找合适的插入位置,把该元素放进该位置,从而达到排序的目的。而接下来介绍的交换排序,则是通过元素间的比较与交换操作来完成排序的。下面让我们看看最简单也是最经典的交换排序——冒泡排序。       以序列:49、38、65、97、76、13、27、49为例。第1趟排序时,要处理整个序列。从第1个

2014-09-26 09:38:05 843

原创 排序4:插入排序(希尔排序)

从前面的介绍可以看到,一般情况下,对于同一序列的排序,尽管在实际的操作次数上我们进行了不断的改进,但是,仍然无法改变其时间复杂度为O(n2)的事实,因此,当序列元素个数n变得越来越大时,之前所介绍的排序算法在性能上的改进也将显得无力。在插入排序中,有种排序或许能在n比较大的时候,在性能上有较好的表现,这就是接下来要介绍的希尔排序。       我们知道,直接插入排序的最好情况是序列完全顺序,初

2014-09-26 01:29:10 591

原创 排序3:插入排序(2路插入排序)

折半插入排序的优点在于利用折半查找的思想大大减少排序过程中产生的元素比较次数。然而,确定了元素插入位置后,移动元素次数却丝毫没有比直接插入排序的有所减少。有没有一种办法,不但能减少元素的比较次数,还能减少元素的移动次数呢?答案是肯定的,接下来让我们看看2路插入排序。         仍以49、38、65、97、76、13、27、49为例,并且假设该序列存放到list数组中。我们需要1个结果数组

2014-09-26 00:56:51 724

原创 排序2:插入排序(折半插入排序)

直接插入排序把原始序列分成两部分,已有序和仍无序部分。每趟排序,从仍无序的部分中选取头个元素,在已有序的部分中寻找插入位置来插入。寻找插入位置的过程显然是个顺序查找的过程。这里,读者或许会提出个问题:已有序部分既然有序了,寻找插入位置实际上是个查找过程,为何不使用折半查找的思想而仍然用顺序查找的思想呢?说的没错,接下来要介绍的折半插入排序正是读者们想看到的。       继续以序列49、38、

2014-09-25 21:32:07 2208

原创 排序1:插入排序(直接插入排序)

本人这两天复习了数据结构与算法,恰好看完了排序部分,觉得挺有趣,想在这里整理整理,跟有兴趣的读者分享分享。我将会对不同的排序算法分别用1篇日志来描述,以尽量做到思路清晰和描述详尽。对每个算法,我将会直接用1个例子来描述算法的基本思想,然后给出实现的代码,这些代码都经过了简单的测试。不过,代码可能还不能完全保证正确性,毕竟还是有待更多测试用例的考验,如果有读者发现代码有问题请及时通过评论提出来或者直

2014-09-25 21:08:42 824

基于Rails的敏捷Web开发

详细介绍了Web中的敏捷开发思想,使用Rails技术作为基调。

2014-08-21

中大软院的软件工程课件资料

这里是中山大学软件学院的软件工程必修课课件,英文材料,但涵盖了整体的知识体系,以该课件为骨架,进行深入学习的话,会大有帮助!以后本人将陆续上传一些软件工程的阅读材料

2014-08-18

Java语言程序设计(8th)(38~48)

《Java语言程序设计》这本书原版有48章,翻译过来大陆这里销售的基础篇和进阶篇只有前37章,这里给出剩下部分的英文版~~

2014-06-19

Linux Bible

详细介绍介绍Linux的书,包括Linux的架构、Linux的设计原理、应用、Linux编程等。

2013-04-11

Intel PXA255 Processor Developer’s Manual

一份关于Intel PXA255 Processor的最详尽文档,平时不到最无聊时刻建议不要细看,有用时直接查阅便可~~

2010-10-28

ARM汇编语言教程及指令集

内有几乎所有ARM汇编指令,以及教你如何使用ARM编写程序!

2010-10-28

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除