插入排序
1.问题简介
将数字依照大小排列,通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
2. 算法描述
从第一个元素开始,并取下一个元素,若大于则将该元素移到下一位置,反复重复,直至排序完成。
3.输出结果
1 3 4 4 5 5 5 6 23 35 54 67 76
#include<stdio.h>
int main()
{
int i, j, tmp,size=13,arr[]={1,23,4,3,35,4,54,5,6,5,76,5,67};
for (i = 1; i < size; i++) {
if (arr[i] < arr[i-1]) {
tmp = arr[i];
for (j = i - 1; j >= 0 && arr[j] > tmp; j--) {
arr[j+1] = arr[j];
}
arr[j+1] = tmp;
}
}
for (i=0; i<size; ++i)
{
printf("%d\x20", arr[i]);
}
printf("\n");
}