
排序、查找
费米子
模式识别图像处理较为擅长
展开
-
排序算法之基本排序算法:交换、选择、插入
//交换排序 /*交换法的程序最清晰简单,每次用当前的元素一一的同其后的元素比较并交换。*/ void ExchangeSort(int *pData,int count) { int temp; for(int i=0;i<count-1;i++) { for(int j=i+1;j<count;j++) { if(pData[j]<pData[i]) //if(pDa原创 2014-07-04 10:55:28 · 670 阅读 · 0 评论 -
排序算法之桶式排序
//任何只是用比较的一般/通用排序算法,最坏时间复杂度都大于等于NlogN //但是,在某些特殊条件限制下,以线性时间排序仍然是可能的 /*桶式排序,数据必须只有小于M的正整数组成。最坏时间复杂度N+M*/ //使用一个大小为M的count数组(count有M个桶),初始化为0; //扫描一遍待排序序列,当读pData[i]时,将count[pData[i]]加一; //扫描数组count,打印出原创 2014-07-16 14:49:06 · 550 阅读 · 0 评论 -
排序算法之归并排序
//归并排序,归并排序依赖于归并操作,归并操作是指将两个已经有序的序列合并成一个有序序列的操作 /*算法描述: 1、申请用来存放合并后的序列的空间,大小为两个已经有序序列之和 2、设定两个指针,初始指向两个有序序列的起始位置 3、比较两个指针所指向的元素,将较小的放入到合并空间,并将该指针移到下一个位置 4、重复3直到某一个指针到达尾部 5、将另一序列剩下的元素全部放到合并序列尾部 */ //将两原创 2014-07-15 18:05:57 · 497 阅读 · 0 评论 -
排序算法稳定性总结
1、选择排序:第i轮时,在未排序序列/后半部分原创 2014-07-11 18:26:45 · 573 阅读 · 0 评论 -
排序算法之希尔排序
C++版本 //希尔排序,突破了“通过交换相邻元素进行排序的任何算法平均需要Ω(N^2)”的二次时间限制 /*通过比较相距一定间隔的元素来工作。使用一个增量序列:h1=1,h2,...,ht,在使用一个 增量h的一趟排序后,对于每一个i满足pData[i]<=pData[i+h],即此时序列是h排序的;各趟 比较所用的距离逐渐减小,直到只比较相邻元素的最后一趟排序为止。 */ //希尔增量N/2原创 2014-07-07 21:53:07 · 604 阅读 · 0 评论 -
排序算法之快速排序
//快速排序,对冒泡的一种改进 /*基本思想:通过一趟排序将要排序的数据分割成两部分, 一部分的所有数据比另一部分的所有数据都要小,然后再按 此方法对两份数据分别进行快速排序。*/ void QuickSort(int *pData,int left,int right) { if(left>=right) { return; } int first = left,last = rig原创 2014-07-04 10:56:30 · 382 阅读 · 0 评论 -
查找算法
一、二分查找 int binary_search(int *pData, int N, int key) { int start=0, end=N-1, middle; while(start<=end) //如果是start<end的话,第0和N-1位置无法查询到 { middle = (start+end)/2; if(key==pData[middle]) {原创 2014-07-22 16:31:46 · 556 阅读 · 0 评论 -
排序算法之堆排序
堆排序利用堆的性质进行排序,原创 2014-08-10 16:12:04 · 596 阅读 · 0 评论