排序之概述

※、很多发布年代不清楚,如果你知道,如果你愿意,不妨告诉我和大家(包括这里没有列举且你认为有必要列举的)。

根据排序过程中涉及的存储器不同,可以将排序方法分为分内部排序和外部排序。在内部排序中,根据排序过程中所依据的原则可以分为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


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。