#include <stdio.h>
#include "tool.h"
/*
简单插入排序算法:
1.把待排序队列分成,已排序、未排序两部分。一开始已排序部分元素个数为0
2.然后从待排序队列中取出第一个元素与已排序队列元素最后一个元素比较
如果小于,则交换。然后依次向前比较,直到大于等于前一个元素。
算法复杂度:O(N^2)
*/
void simpleInsertSort(int a[], int len) {
int i, j;
for (i = 1; i < len; i++) {
int tmp = a[i];
for (j = i; j > 0 && a[j-1] > tmp; j--) {
a[j] = a[j - 1];
}
a[j] = tmp;
}
}
int main() {
int a[10] = { 9,1,8,5,7,6,4,3,10,2 };
int len = sizeof(a) / sizeof(a[0]);
printf("排序前: ");
printfArray(a, len);
simpleInsertSort(a, len);
printf("排序后: ");
printfArray(a, len);
return 0;
}
来源:oschina
链接:https://my.oschina.net/u/568675/blog/4331336