插入排序法
插入排序法的灵感来自于抽牌,首先手中的牌是有序的,每次抽一张牌,找到合适位置将它插入,手中的牌一直保持有序。
C++代码实现
#include<iostream>
int main()
{
int a[10] = { 23,45,16,21,97,-3,16,-89,37,94 };
int i,j,key;
for (j = 1; j < 10; j++)
{
key = a[j]; //需要一个变量来记录取出的值
for (i = j - 1; i >= 0 && key < a[i]; i--) //取出第j个牌,与手中的牌比较,找到合适的插入位置
{
a[i + 1] = a[i];
}
a[i + 1] = key;
}
for (j = 0; j < 10; j++)
{
std::cout << a[j]<<' ';
}
}