插入排序:类似打牌,每次接到一张牌就按照顺序放入
快速排序:从两边往中间排序,有两个基准lower_index higher_index select_X ,每次排序sel,ect_X固定,大于selectX的往右边放,小于selectX往左边放,第一次排完,select_x 左右边都比它小,右边都比它大。 第二次分别对select_x两边进行排序
选择排序:每次从待排序的队列,选一个最小的
归并排序:将两个以上的有序表,排成一个表。没次从所有有序表中选出最小的放入到输出队列中
冒泡排序:依次比较相邻的两个数,小放前,大放后
堆排序:将一组数据,按照“树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字”进行排列构成树,第一次选择出当前堆中的最大元素跟最后一位相互调换,然后大根堆的性质遭到破坏,调用重建堆性质函数重新建立大根堆
希尔排序:给定的先取一个正整数d1<n,把所有序号相隔d1的数组元素放一组,组内进行直接插入排序;然后取d2<d1,重复上述分组和排序操作;直至di=1,即所有记录放进一个组中排序为止 ,注意最后一个增量一定是(1-5 2-6 3-7 4-8 两个元素比一次 排出一个队列 ,对次队列递归 )
堆排序和归并排序的时间复杂度比较低,但是归并要额外花费较大的空间内存,在有序的情况下快排表现很差,所有我们这里有快排的随机化版本,归并和堆排序在有序的情况下也表现很好。
排序算法比较
原创
©著作权归作者所有:来自51CTO博客作者mb644789379f291的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:搭建SSH开发环境
下一篇:mapreduce概念介绍
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【C】排序算法
文章介绍了几种常用的排序,包括其实现思路与具体代码实现。
排序 算法 代码分析 -
排序算法之计数排序的优化
排序算法之计数排序的优化
数组 计数排序 最小值 -
比较排序算法概述
上述输入序列的元素序列:6,8,5根据插入排序算法构建的插入排
排序算法 算法 结点 决策树 -
8种排序算法比较
8种排序算法,各算法名称见下表或见源码。运行程序时,将需要你输入一数值
冒泡排序 数据 快速排序 -
常见排序算法效率比较
归并排序
排序算法 算法 leetcode python .net -
多种排序算法的比较排序