排序算法
文章平均质量分 61
interesting_code
这个作者很懒,什么都没留下…
展开
-
排序算法小结6——堆排序(详细图解)
什么是堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆, 注意 :没有要求结点的左孩子的值和右孩子的值的大小关系。每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆 大顶堆图示 小顶堆图示: 堆排序的基本介绍 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为 O(nlogn),它也是不稳定排序。...原创 2020-02-17 13:29:14 · 690 阅读 · 1 评论 -
常用排序算法的时间复杂度和稳定性
如题,见图 名词解释: 1)稳定:如果 a原本在 b前面,而 a=b,排序之后 a仍然在 b的前面; 2)不稳定:如果 a原本在 b的前面,而 a=b,排序之后 a可能会出现在 b的后面; 3)内排序:所有排序操作都在内存中完成; 4)外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行; 5)时间复杂度:一个算法执行所耗费的时间。 6)空间复杂...原创 2020-02-14 14:48:28 · 1090 阅读 · 0 评论 -
排序算法小结5——基数排序(桶排序)
1.基数排序(桶排序)介绍: 1)基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或 bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用 2)基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法 3)基数排序(Radix Sort)是桶排序的...原创 2020-02-14 13:20:32 · 283 阅读 · 0 评论 -
排序算法小结4——归并排序
归并排序介绍 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 归并排序算法的思路及过程 过程:将原数组从中间分开,以中间的数为区分,分为左边的数组和右边的数组,然后通过递归将左...原创 2020-02-13 13:22:35 · 157 阅读 · 0 评论 -
排序算法小结3——快速排序
快速排序的介绍 快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列 快速排序的思路图 快速排序的过程和思路其实很简单,假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个...原创 2020-02-13 13:06:00 · 179 阅读 · 1 评论 -
排序算法小结2(插入排序和希尔排序)
1插入排序法 1.1插入排序法的介绍 插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。 1.2插入排序法思想 插入排序(Insertion Sorting)的基本思想是:把 n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有 n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排...原创 2020-02-12 15:06:48 · 157 阅读 · 0 评论 -
排序算法小结1(冒泡排序和选择排序)
1.冒泡排序的介绍 冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。 1.1演示冒泡过程的例子(图解) 小结上面的图解过程: (1)一共进行数组的大小-1 次大的循环 (2)每一趟排序的次数在逐渐的减少 (3)如果我们发现在某趟排序中,没...原创 2020-02-10 23:50:24 · 307 阅读 · 0 评论