排序算法

时间:2020-07-19 16:23:30   收藏:0   阅读:50
内部排序:数据记录在内存中进行排序
外部排序:待排序文件较大,需要访问外存

常见的内部排序:插入排序(直接插入、折半插入、希尔排序)、交换排序(冒泡、快排)、选择排序(简单选择、堆排序)、归并排序(2路归并)、基数排序
外排:归并排序(多路归并)、

各种内排的性能比较:
技术图片


插入排序

  • 每次将一个待排序的记录按关键字大小插入到前面已排好序的子序列中,直到全部记录插入完成
  • 每一轮能够确定一个最终位置的记录,某时刻的状态为:[有序序列] Li [无序序列]
  • 一般采用就地排序(空间复杂度为O(1))
  • 步骤:
    • 将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
    • 从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)

1. 直接插入

1. 冒泡排序:

1. 简单选择

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!