插入排序--算法导论

#include<stdio.h>

const int N = 100;

int a[N];



/**

算法导论第一部分,基础知识。

P17 插入排序,复杂度O(n^2)

*/

void insertion_sort( int *a,int n)

{

    for(int i = 1;i < n ; i++)

    {

        int key = a[i];

        int j = i-1;

        while(j>=0&&a[j]>key)

        {

           a[j+1]=a[j];

           j--;

        }

        a[j+1] = key;

    }

}







int main()

{

    int n;

    while(scanf("%d",&n)!=EOF) 

    {    

        for(int i = 0;i < n; i++) 

        {

          scanf("%d",&a[i]);

        }



        insertion_sort(a,n);



        for(int i=0;i<n;i++) 

        {

          printf("%d\n",a[i]);

        }

    }



    getchar();

    return 0;

}



/**

input:

5

4 3 2 1 8

output:

1

2

3

4

8



*/
View Code


插入排序

算法导论第一部分,基础知识。 P17 插入排序,复杂度O(n^2)

你可能感兴趣的:(插入排序)