插入排序:
它的算法思想是:把要排序的数组分为了两个部分, 一部分是经过插入排序后有序的部分, 另一部分是除去第一部分待插入的元素; 先将第一部分排序完成, 然后再插入这个元素.。
插入排序由于操作不尽相同, 可分为 直接插入排序
, 折半插入排序
(又称二分插入排序), 链表插入排序
, 希尔排序
。我们先来看下直接插入排序。
1、基本思想
直接插入排序的基本思想是:将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小,则移动交换,直到全部元素都比较过为止。见下图
2、算法描述
一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:
①. 从第一个元素开始,该元素可以认为已经被排序
②. 取出下一个元素,在已经排序的元素序列中从后向前扫描
③. 如果该元素(已排序)大于新元素