随笔分类 -  排序算法

摘要:堆排序 2019-11-10 11:45:11 by冲冲 1、概念 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子 阅读全文
posted @ 2019-11-10 16:57 Yadielr 阅读(545) 评论(0) 推荐(0)
摘要:基数排序 2019-11-10 11:42:38 by冲冲 1、概念 基数排序与本系列前面讲解的七种排序方法都不同,它不需要比较关键字的大小。 它是根据关键字中各位的值,通过对排序的N个元素进行若干趟“分配”与“收集”来实现排序的。 2、基本思想 设有一个初始序列为: R {50, 123, 543 阅读全文
posted @ 2019-11-10 16:47 Yadielr 阅读(5939) 评论(0) 推荐(1)
摘要:选择排序 2019-11-10 11:43:17 by冲冲 1、概念 选择排序(Selection sort)是一种简单直观的排序算法。 基本思想是,首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序 阅读全文
posted @ 2019-11-10 16:34 Yadielr 阅读(325) 评论(0) 推荐(0)
摘要:快速排序 2019-11-10 11:43:52 by冲冲 1、概念 快速排序(Quick Sort)使用分治法策略。 ① 基本思想是,选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进行快速排序,整 阅读全文
posted @ 2019-11-10 16:29 Yadielr 阅读(367) 评论(0) 推荐(0)
摘要:插入排序 2019-11-10 11:40:40 by冲冲 1、概念 直接插入排序(Straight Insertion Sort),把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的 阅读全文
posted @ 2019-11-10 16:13 Yadielr 阅读(275) 评论(0) 推荐(0)
摘要:希尔排序 2019-11-10 11:44:39 by冲冲 1、概念 希尔排序(shell排序),是插入排序(直接插入)的增强版。 特点是,在不断缩小增量的过程中,不断地排序,使得在最终使用插入排序时,序列已经基本有序。插入排序在操作基本有序的序列时效率倍增。 2、基本思想 把序列按步长gap分组, 阅读全文
posted @ 2019-11-10 15:46 Yadielr 阅读(506) 评论(0) 推荐(0)
摘要:冒泡排序 2019-11-10 11:39:43 by冲冲 1、概念 冒泡排序(Bubble Sort),每次遍历时,它都会从左往右依次地比较相邻两个数的大小,如果前者比后者大,则交换它们的位置。一次遍历之后,将最大元素置于序列末尾。(或者从右往左每一次都将最小元素置于序列头部) 2、基本思想 // 阅读全文
posted @ 2019-11-10 11:40 Yadielr 阅读(320) 评论(0) 推荐(0)
摘要:排序的稳定性 2019-11-10 09:42:11 by冲冲 1、稳定性 ① 定义:能保证两个相等的数,经过排序之后,其在序列的前后位置顺序不变。(A1=A2,排序前A1在A2前面,排序后A1还在A2前面) ② 意义:稳定性本质是维持具有相同属性的数据的插入顺序,如果后面需要使用该插入顺序排序,则 阅读全文
posted @ 2019-11-10 11:35 Yadielr 阅读(11952) 评论(2) 推荐(1)