排序算法
yemulan123
这个作者很懒,什么都没留下…
展开
-
冒泡排序
冒泡排序算法的运作如下:(从后往前) 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 #include using namespace std;原创 2016-03-05 15:44:28 · 269 阅读 · 0 评论 -
快速排序
一趟快速排序的算法是: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一个数组元素作为关键数据,赋值给key,即key=A[0]; 3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j],将A[j]和A[i]互换; 4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]和A[j]互换; 5)重复原创 2016-03-05 15:48:15 · 351 阅读 · 0 评论 -
堆排序(一)
堆排序 HeapSort( A ): 堆排序算法的基本思想是,将数组A创建为一个最大堆,然后交换堆的根(最大元素)和最后一个叶节点x,将x从堆中去掉形成新的堆A1,然后重复以上动作,直到堆中只有一个节点。原创 2016-03-06 14:28:20 · 244 阅读 · 0 评论 -
堆排序(二)
#include #include using namespace std; void HeapAdjust(int *a,int i,int length) { int lchild=i*2+1; int rchild=i*2+2; int max=i; if(i { if(ia[max]) { max=lchild; } if(ia[max])//i {原创 2016-03-06 16:39:44 · 258 阅读 · 0 评论