开发者社区> 问答> 正文

数据结构中排序方法有多少种

数据结构中排序方法有多少种

展开
收起
知与谁同 2018-07-18 19:37:35 3466 0
1 条回答
写回答
取消 提交回答
  • 1、插入排序(直接插入排序和希尔排序)
    2、选择排序(直接选择排序和堆排序)
    3、交换排序(冒泡排序和快速排序)
    4、归并排序
    5、基数排序
    直接插入排序:逐个将后一个数加到前面的排好的序中。在直接插入排序过程中,对其中一个记录的插入排序称为一次排序;直接插入排序是从第二个记录开始进行的,因此,长度为n的记录序列需要进行n-1次排序才能完成整个序列的排序。时间复杂度为O(n2)。
    希尔排序:希尔排序又称缩小增量排序,增量di可以有各种不同的取法,但最后一次排序时的增量必须为1,最简单可取di+1=di/2(取小)。时间复杂度为O(n(log2n)2)。
    直接选择排序
    说明:每次将后面的最小的找出来插入前面的已排好的序中。同理,具有n个记录的序列要做n-1次排序。
    时间复杂度为O(n2)。
    冒泡排序:两个两个比较,将大的往后移。通过第一次冒泡排序,使得待排序的n个记录中关键字最大的记录排到了序列的最后一个位置上。然后对序列中前n-1个记录进行第二次冒泡排序。。。对于n个记录的序列,共需进行n次冒泡排序。时间复杂度为O(n2)。
    快速排序:又叫分区交换排序,是对冒泡排序方法的一种改进。时间复杂度为O(nlog2n)。
    归并排序:将两个或两个以上的有序数据序列合并成一个有序数据序列的过程。时间复杂度为O(nlog2n)。
    2019-07-17 22:49:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何使用Tair增强数据结构构建丰富在线实时场景 立即下载
Apache Flink 流式应用中状态的数据结构定义升级 立即下载
低代码开发师(初级)实战教程 立即下载