#include<iostream>
using namespace std;
int main()
{
int a[10] = {32, 21, 67, 11, 5, 43, 99, 18, 22, 87};
for(int i = 0;i < 10;i++)
{
for(int j = 0; j <= i;j++)
{
if(a[i+1] < a[j])
{
int temp = a[i+1];
for(int k = i+1; k > j;k--)
{
a[k] = a[k-1];
}
a[j] = temp;
}
}
}
for(int i = 0; i < 10;i++)
{
cout << a[i] << " ";
}
}
实现插入了,代码是自己写的,灰常容易。
nocow上说,插入排序的基本思想:经过i-1遍处理后,L[1..i-1]己排好序。第i遍处理仅将L[i]插入L[1..i-1]的适当位置p,原来p后的元素一一向右移动一个位置,使得L[1..i]又是排好序的序列。对于数据比较大的,通常可以采取二分查找来确定一个数应该加入的位置。