BS(Begin Status)
OP:{}
UP:{
STEP1. 将数列分为OP(已有序)和UP(无序)两部分
OP:{
UP:{
STEP2. 从UP中取第一个元素放到OP中适当位置
具体方法是: 从 OP 的最后一个位置起向前进行循环比较
OP:{
UP:{
STEP3. 重复 STEP2, 直至 UP 变成为空序列(即数列元素个数为0)
OP:{
UP:{
ES(End Status)
OP:{
UP:{}
代码实现
//C++代码实现
void InsertSort(int arr,int arrSize)
{
for(int i = 1;i < arrSize; i++)
{
int target=arr[i],j=i;
while(j > 0 && target < arr[j-1])
{
arr[--j+1]=a[j];
}
arr[j]=target;
}
}
拓展–折半插入排序(针对于数列个数比较大)
改进的关键措施是 在OP上 从 一般的循环比较 改成 二分法折半查找