插入排序可以说是最简单的排序算法了。
插入排序对数组或子数组做了N - 1次排序,因此时间复杂度为O(N*N)。
对于P = 1次到P= N - 1次,插入排序保证数组位置0到位置P上的元素都为已排序状态。
实现代码如下:
#include<iostream>
using namespace std;
void InsertionSort(int input[], int n);
int main()
{
int list[10] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
InsertionSort(list, 10);
for (int i = 0; i < 10; i++)
cout << list[i] << " ";
cout << endl;
}
void InsertionSort(int input[], int n)
{
int i, tmp, j;
for (i = 1; i < n; i++)
{
tmp = input[i];
for (j = i; j > 0; j--)
if (input[j - 1] > tmp)
input[j] = input[j - 1];
else
break;
input[j] = tmp;
}
}