插入排序算法
插入排序(即原地排序)
输入:n个数(a1, a2, a3, ... an).
输出:输入序列的重新排序(a1', a2', a3'... an').
c++描述:
#include <iostream>
using namespace std;
void main()
{
int J_Array[9] = { 3, 8, 23, 89, 1, 33, 12, 11, 21 };
cout << "排序前的数组:" <<endl;
int j = 0;
while(j < 9) //输出要排的数
{
cout << J_Array[j] <<" ";
j ++ ;
}
cout << endl;
cout << "排序后的数组:"<<endl;
int key = 0;
for (int index = 1; index < 9; index ++)
{
key = J_Array[index]; //从数组第二个数开始,依次设为key
int i = index - 1;
while ( i >= 0 && J_Array[i] > key) //将key与前面 i 个数比较大小
{
J_Array[i+1] = J_Array[i]; //将大的数与key交换
J_Array[i] = key;
i -- ;
}
}
for(int index = 0; index < 9; index ++) //输出排好的数
cout << J_Array[index]<<" ";
}