#include <iostream>
using namespace std;
void displayarray(int[], int);
void insertionsort(int[], int);
int main()
{
const int maxsize = 10;
int array[maxsize] = { 21,15,12,24,9,30,45,66,31,20 };
displayarray(array, maxsize);
insertionsort(array,maxsize);
displayarray(array, maxsize);
system("pause");
return 0;
}
void displayarray(int vec[], int size)
{
for (int i = 0; i < size; i++)
{
cout << vec[i]<<"\t";
}
cout << endl;
}
void insertionsort(int vec[], int size)
{
for (int j = 1; j < size; j++)
{
int key = vec[j]; //將vec[j]的值先用key保存下來
int i = j - 1;
while (i >= 0 && vec[i] > key) /*把每個數值與最右邊的值做比較,然後將較大的數值往右邊排*/
{ /*直到有數值比最右邊數值小時結束此迴圈*/
vec[i + 1] = vec[i];
--i;
}
vec[i + 1] = key; //將重複的數值部分修改
}
}