※、很多发布年代不清楚,如果你知道,如果你愿意,不妨告诉我和大家(包括这里没有列举且你认为有必要列举的)。
根据排序过程中涉及的存储器不同,可以将排序方法分为分内部排序和外部排序。在内部排序中,根据排序过程中所依据的原则可以分为5类:插入排序、交换排序、选择排序、归并排序和基数排序;根据排序过程的时间复杂度来分,可以分为三类:简单排序、先进排序、基数排序。
评价排序算法优劣的标准主要是两条:一是算法的运算量,这主要是通过记录的比较次数和移动次数来反应;另一个是执行算法所需要的附加存储单元的的多少。
■稳定的排序
冒泡排序,在1956年就已经被研究。
鸡尾酒排序
插入排序
直接插入排序
折半插入排序(二分插入排序)
桶排序
计数排序
归并排序,1945年由约翰?冯?诺伊曼首次提出。
二叉树排序
鸽巢排序
基数排序
基数排序
侏儒排序
基本概念:
图书馆排序,在2004年被发表。
■不稳定的排序
选择排序
希尔排序,由1959年公布。
clover排序(三叶草排序)
梳排序,于1980年所发明的不稳定排序算法。
堆排序,在1964年共同发明了著名的堆排序算法。
平滑排序
快速排序
内省排序,是由David Musser在1997年设计的排序算法。
耐心排序
■不实用的排序
bogo排序
stupid排序
珠排序
煎饼排序
臭皮匠排序
■java的实现
byte DualPivotQuicksort
char DualPivotQuicksort
short DualPivotQuicksort
int DualPivotQuicksort
long DualPivotQuicksort
float DualPivotQuicksort
double DualPivotQuicksort
Object mergeSort/ComparableTimSort
T mergeSort/ComparableTimSort