算法思想:将待排元素分为已排子集和未排序子集,依次从未排序子集中的一个元素插入到已排序子集中。
1 #include<stdio.h>
2 int main()
3 {
4 int a[]={1,3,2,4};
5 int i,j,t,n;
6 n = sizeof(a)/sizeof(a[0]);
7 for(i=0;i<n;i++)
8 {
9 t = a[i];
10 for(j=i-1;j>=0 && t<a[j];j--)
11 a[j+1] = a[j];
12 a[j+1] = t;
13 }
14 for(i=0;i<n;i++)
15 printf("%d ",a[i]);
16 printf("\n");
17
18
19 }
时间复杂度O(n^2),空间复杂度O(1).