摘要:
堆排序基本思想(最大堆): 1. 将初始待排序关键字序列(R1,R2....Rn)构建成最大堆,此时堆为初始的无序堆; 2. 将堆顶元素R[1]与最后一个元素R[n]交换,此时得到新的无序区(R1,R2,......Rn-1)和新的有序区(Rn),且满足R[1,2...n-1]<=R[n]; 3. 阅读全文
摘要:
基数排序的基本思想: 原理类似桶排序,这里总是需要10个桶,多次使用 首先以个位数的值进行装桶,即个位数为1则放入1号桶,为9则放入9号桶,暂时忽视十位数 然后再以十位的值进行装桶 最后在以百位的值进行装桶 这样倒出的值为011 014 023 072 084 101 对于一个int数组,请编写一个 阅读全文
摘要:
基数排序基本思想:计数排序是一个类似于桶排序的排序算法,其优势是对已知数量范围的数组进行排序。它创建一个长度为这个数据范围的数组C,C中每个元素记录要排序数组中对应记录的出现个数。 对于上述例子,认为人的身高在100cm--300cm之间,然后建立200个桶(pail),桶中存的是对应元素的个数,即 阅读全文
摘要:
希尔排序基本思想:首先将待排序的元素分成多个子序列,使得每个子序列的元素个数相对较少,对各个子序列分别进行直接插入排序,待整个待排序序列基本有序后,在对所有元素进行一次直接插入排序。 1. 选择一个步长序列t1,t2,...,tk,满足ti>tj(i<j),tk=1; 2. 按步长序列个数k,对待排 阅读全文
摘要:
快速排序基本思想: 1. 分解:将输入的序列array[m,....,n]划分成两个非空子序列array[m,....,k]和array[k+1,....,n],使得array[m,....,k]中的任一元素的值不大于和array[k+1,....,n]中的任一元素的值。 2. 递归求解:通过递归调 阅读全文
摘要:
归并排序基本原理:对于给定的一组元素,首先将每两个相邻的长度为1的子序进行归并,得到(n/2)个长度为2或1的有序子序列,再将其两两归并,反复执行其过程,直到得到一个有序序列为止。 值得注意的是:在处理合并两个[]的时候,需要创建一个临时数组aux来保存A。还有边界条件的问题:第一个[]中的元素都处 阅读全文