插入排序
通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入
//平均时间复杂度O(n^2)
//最优时间复杂度O(n)
//最坏时间复杂度O(n^2)
//空间复杂度O(1)
//稳定
#include <stdio.h>
void InsertSort(int a[], int len){
int i, j;
int temp;
for (i = 1; i < len; i++) {
temp = a[i];
j = i - 1;
while (j >= 0 && a[j] > temp) {
a[j + 1] = a[j];
j--;
}
a[j + 1]= temp;
}
}
int main()
{
int a[8];
printf("Please input the number:\n");
for(int i=0;i<8;i++)
scanf("%d",&a[i]);
InsertSort(a, 8);
for (int i=0; i<8; i++) {
printf("%d\n",a[i]);
}
return 0;
}