排序算法
文章平均质量分 55
排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。
美式要加冰
这个作者很懒,什么都没留下…
展开
-
排序算法---快速排序
1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。//快速排序void Quick_Sort(int* arr, int begin, int end) { if (begin > end) return; int tmp = arr[begin]; int left = begin; int right = end; while (left != righ...原创 2022-02-22 21:11:00 · 159 阅读 · 0 评论 -
排序算法---基数排序
基数排序基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用。 基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法。基本思想将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。图文说明示例原创 2020-07-08 17:01:16 · 278 阅读 · 0 评论 -
排序算法---归并排序
归并排序归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。基本思路原创 2020-07-08 16:30:33 · 279 阅读 · 0 评论 -
查找算法---(图解)斐波那契查找
斐波那契查找原理与前两种相似,仅仅改变了中间结点(mid)的位置,mid不再是中间或插值得到,而是位于黄金分割点附近。原创 2020-07-03 11:56:19 · 7819 阅读 · 8 评论 -
排序算法---希尔排序
希尔排序(Shell Sort)希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。 简单插入排序存在的问题数组 arr = {2,3,4,5,6,1} 这时需要插入的数 1(最小), 这样的过程是:{2,3,4,5,6,6}{2,3,4,5,5,6}{2,3,4,4,5,6}{2,3,3,4,5,6}{2,2,3,4,5,6}{1,2,3,4,5,6}结论: 当需要插入原创 2020-07-01 18:01:32 · 335 阅读 · 0 评论 -
排序算法---插入排序
插入排序(Insertion Sort)插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。 基本思路把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。代码实现注释便于理解public class InsertSort { public static原创 2020-07-01 12:08:51 · 149 阅读 · 0 评论 -
排序算法---选择排序
选择排序(Select Sort)选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。基本思路第一次从arr[0]-arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]-arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]~arr[n-1]中选取最小值,与arr[2]交换,第i次从arr[i-1]~arr[n-1]中选取最小值,与arr[i-1]交换,第n-1次从arr[n-2]~arr[n-1]中选原创 2020-06-30 22:34:37 · 199 阅读 · 0 评论 -
排序算法---冒泡排序(含优化)
冒泡排序(Bubble Sort)冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。时间复杂度平均情况:O(n^2)逐步分析原始数组:3, 9, -1, 10, 20从3开始向右逐个两两比较,如果相邻的元素逆序就交换第一趟排序(1) 3, 9, -1, 10, 20(2) 3, -1, 9, 10, 20(3) 3, -原创 2020-06-30 17:39:55 · 190 阅读 · 0 评论