排序之表排序、基数排序及全部排序算法比較

本学习笔记部分内容来自浙江大学网易云课堂,谢谢!

1、表排序

定义一个指针数组做为表。排序的时候,数组位置上的数值不变,改变的是指针的指向。

如该图。初始数值:f d c a g b h e   開始时,比較f>d,则指针0指向d,指针1指向f。

之后比較f>c,d>c,则指针0指向c,指针1指向d,指针2指向f。

以此类推,终于指针0指向a的位置(即table[0]=3,A[3]那个位置)


2、基数排序

基本思想:比方十进制数字排序,先按个位数大小排。再按十位数大小排。依次。

举比例如以下:


基数排序能够用来进行多keyword排序。如扑克牌:花色和数字大小两种keyword。

3、排序算法比較

注:稳定性是指假设两个数相等。排完序后。其相对位置有没有发生变化。没变的话就是稳定的。希尔排序的d取决于增量序列的选择。最大为2。

当待排序列已经基本有序时,高速排序算法效率最差。
插入排序。在最后一趟開始之前。可能全部的元素都不在自己的位置上。

原文地址:https://www.cnblogs.com/jzssuanfa/p/6846315.html