排序算法总结
2017-09-09 09:56
120 查看
插入排序:
1. 从数组的第二个元素开始,将其插入到已经有序的元素中。
选择排序:
1. 扫描数组,记录下最小的元素,将其与第一个元素交换。
2. 重复1,只是交换元素后移。
冒泡排序的思想:
1. 从数组第一个数组元素开始,到数组末尾,如果当前元素比后记元素大,则交换。——确保最大的元素 “冒泡” 到数组末尾。
2. 重复1,只是数组的长度减一(因为最后一个元素已经是最大)。
归并排序思想:分而治之,递归。
1. 将数组分成两块,分别排序,然后合并成一个有序数组。
合并操作:需要一个临时数组(整个过程只需一个临时数组即可),将原数组元素复制过去,然后将合并结果写回原数组。
2. 每块重复1。
快速排序思想:分而治之,递归。
1. 选择一个pivot,将数组分为两块,左边的块小于等于pivot,右边的块大于等于pivot。
2. 每块重复1。
基数排序:
1. 从低位开始,对每位进行排序。
【从低位开始的原因:如果从高位开始,高位排完序之后,进行低位排序时必须分段(每段之内的元素其高位相等),
在段内对低位进行排序。而从低位开始排序不存在分段。】
1. 从数组的第二个元素开始,将其插入到已经有序的元素中。
选择排序:
1. 扫描数组,记录下最小的元素,将其与第一个元素交换。
2. 重复1,只是交换元素后移。
冒泡排序的思想:
1. 从数组第一个数组元素开始,到数组末尾,如果当前元素比后记元素大,则交换。——确保最大的元素 “冒泡” 到数组末尾。
2. 重复1,只是数组的长度减一(因为最后一个元素已经是最大)。
归并排序思想:分而治之,递归。
1. 将数组分成两块,分别排序,然后合并成一个有序数组。
合并操作:需要一个临时数组(整个过程只需一个临时数组即可),将原数组元素复制过去,然后将合并结果写回原数组。
2. 每块重复1。
快速排序思想:分而治之,递归。
1. 选择一个pivot,将数组分为两块,左边的块小于等于pivot,右边的块大于等于pivot。
2. 每块重复1。
基数排序:
1. 从低位开始,对每位进行排序。
【从低位开始的原因:如果从高位开始,高位排完序之后,进行低位排序时必须分段(每段之内的元素其高位相等),
在段内对低位进行排序。而从低位开始排序不存在分段。】
相关文章推荐
- 几种排序算法总结
- 排序算法之总结
- 37. 排序算法总结回顾
- 几种经典排序算法的总结
- 排序算法初步总结
- 程序猿找工作必练内功:排序算法大总结(三)——堆排序算法
- 九大排序算法再总结
- 黑马程序员 知识点总结-Java中几种常见的排序算法
- 常用排序算法总结(一) 比较算法总结
- 排序算法总结之冒泡排序 Bubble Sort
- 排序算法总结之插入排序 Insertion Sort
- 各种排序算法的java实现及时间、空间复杂度、稳定程度总结
- 各种排序算法的总结
- 排序算法的总结,思考和优化
- Java基础学习总结(60)——Java常用的八种排序算法
- 排序算法总结
- 排序算法总结
- 面试中的排序算法总结
- 各种排序算法总结
- 排序算法总结