1.插入排序
算法导论第一部分,基础知识。
P17 插入排序,复杂度O(n^2)
View Code
1 #include<stdio.h>
2 const int N = 100;
3 int a[N];
4
5 /**
6 算法导论第一部分,基础知识。
7 P17 插入排序,复杂度O(n^2)
8 */
9 void insertion_sort( int *a,int n)
10 {
11 for(int i = 1;i < n ; i++)
12 {
13 int key = a[i];
14 int j = i-1;
15 while(j>=0&&a[j]>key)
16 {
17 a[j+1]=a[j];
18 j--;
19 }
20 a[j+1] = key;
21 }
22 }
23
24
25
26 int main()
27 {
28 int n;
29 while(scanf("%d",&n)!=EOF)
30 {
31 for(int i = 0;i < n; i++)
32 {
33 scanf("%d",&a[i]);
34 }
35
36 insertion_sort(a,n);
37
38 for(int i=0;i<n;i++)
39 {
40 printf("%d\n",a[i]);
41 }
42 }
43
44 getchar();
45 return 0;
46 }
47
48 /**
49 input:
50 5
51 4 3 2 1 8
52 output:
53 1
54 2
55 3
56 4
57 8
58
59 */