现在的位置: 首页 > 综合 > 正文

数据结构–8大排序

2018年08月01日 ⁄ 综合 ⁄ 共 766字 ⁄ 字号 评论关闭

大学时代数据结构学的不好,奈何出来之后许多公司都有类似的面试题,“说说你知道的排序方法”,当时就傻眼了,话不多说,进入主题

8大排序有哪8种呢?

1.插入排序--直接插入排序

这里有一组数据

78   20   30   40  55   66

选中78作为一个序列

将后面的数20与其比较

小于78放在前面

(20   78)

然后将(20   78)作为序列与后面数比较

依次类推就ok了

(如果碰到插入相等元素,插入相等元素后面即可)

2.插入排序--希尔排序

比如有10个数

1 2 3 4 5 6 7 8 9 10

取数值的一半5作为一个集合的宽度

1 2 3 4 5 6

2 3 4 5 6 7

3 4 5 6 7 8

4 5 6 7 8 9

5 6 7 8 9 10

分别进行比较

然后取5的一半3作为集合宽度

最后取1作为宽度比较即可

3.选择排序--简单选择排序

有一组数 22 48 49 64 33 19

选中这组数中最小的与22交换

19 48 49 64 33 22

然后在剩下的数中选择最小的与第二个数交换

依次类推即可

4.选择排序--堆排序

就是对完全二叉树的排序

5.交换排序--冒泡排序

在一组数中,自上而下对相邻的两个数依次比较和调整,较大的下沉,较小的往上冒

6.交换排序--快速排序

49 55 33 22 19 88 66 77

选中一个数55

把小于55放在一组,大于55放在一组

(49 33 22 19)    55    (88 66 77)

然后在前面选择49 后面选择88比较

(33 22 19)49 55 (66 77)88

依次类推即可

7.归并排序

将两个或以上有序表合并成新的有序表

(49 38 65 97) (76 13 27)

先分解

(49)(38)(65)(97)(76)(13)(27)

在两两比较

(38 49)(65 97)(13 76)(27)

然后在比较.......

8.基数排序

按照低位先排序,再收集;然后按照高位排序,再收集,直到最高位。

稳定性----直接插入,冒泡排序,归并排序,基数排序都是稳定的~

抱歉!评论已关闭.