定义:插入排序(Insertion Sort)是一种简单的排序算法,它的工作原理类似于人们手中对扑克牌进行排序的方式。它的主要思想是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
插入排序描述:
- 从第一个元素开始,该元素可以认为已经被排序
- 取出下一个元素,在已经排序的元素序列中从后向前扫描
- 如果已排序的元素大于新元素,将该元素移到下一位置
- 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
- 将新元素插入到该位置后
- 重复步骤2-5
实例详解:
假设有一个数字序列:5 3 8 4 2
插入排序过程:
- 第1次迭代:3 5 8 4 2(将3插入5前面)
- 第2次迭代:3 5 8 4 2(未变化,8已在正确位置)
- 第3次迭代:3 4 5 8 2(将4插入5前面)
- 第4次迭代:2 3 4 5 8(将2插入3前面)
排序后的序列:2 3 4 5 8
排序算法对比:
- 冒泡排序:重复地比较相邻的两个元素,如果他们的位置错误就交换。每次遍历都使当前最大值冒泡至正确位置。
- 选择排序:每次遍历未排序数据,找到最小值并放到排序序列的末尾。
冒泡排序和选择排序与