/*
插入排序示例
Wirtten by: nick
Date: 2012-10-16 12:13
*/
#include <iostream>
#include <iomanip>
using namespace std;
void insertionSort(int list[], int last);
void insertOne(int list[], int current, int last);
int main()
{
int a[10] = {3,4,6,3,2,8,4,0,5,7};
insertionSort(a, 9);
for(int i=0; i<10; i++)
cout<< setw(5) << a[i];
return 0;
}
void insertionSort(int list[], int last)
{
for(int current=1; current<=last; current++)
{
insertOne(list, current, last);
}
}
void insertOne(int list[], int current, int last)
{
int tmp = list[current];
int walker;
for(walker=current-1; walker>=0; walker--)
{
if(list[walker] > tmp)
{
list[walker+1] = list[walker];
}
else
{
break;
}
}
list[walker+1] = tmp;
}