本学习笔记部分内容来自浙江大学网易云课堂,谢谢!
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、基数排序
基本思想:比如十进制数字排序,先按个位数大小排,再按十位数大小排,依次。举例如下:
基数排序可以用来进行多关键字排序。如扑克牌:花色和数字大小两种关键字。
3、排序算法比较
注:稳定性是指如果两个数相等,排完序后,其相对位置有没有发生变化,没变的话就是稳定的。希尔排序的d取决于增量序列的选择,最大为2。
当待排序列已经基本有序时,快速排序算法效率最差。
插入排序,在最后一趟开始之前,可能所有的元素都不在自己的位置上。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-10 06:02:42