排序算法
yemulan123
这个作者很懒,什么都没留下…
展开
-
冒泡排序
冒泡排序算法的运作如下:(从后往前)比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。#includeusing namespace std;原创 2016-03-05 15:44:28 · 256 阅读 · 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 · 336 阅读 · 0 评论 -
堆排序(一)
堆排序 HeapSort( A ):堆排序算法的基本思想是,将数组A创建为一个最大堆,然后交换堆的根(最大元素)和最后一个叶节点x,将x从堆中去掉形成新的堆A1,然后重复以上动作,直到堆中只有一个节点。原创 2016-03-06 14:28:20 · 232 阅读 · 0 评论 -
堆排序(二)
#include#includeusing 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 · 248 阅读 · 0 评论