直接插入排序:把N哥待排序的元素看成一个有序表和一个无序表。起始,有序表中只包含一个元素,无序表中包含N-1个元素,排序过程中每次从无序表中取出第一个元素,将他插入到有序表中的适当位置,使之成为新的有序表,重复N-1次则完成排序。

图解:

 

代码:

 1 void InsertSort( int a[] , int n )
 2 {
 3     int i = 0 , j = 0 , k = 0;
 4     int temp = 0;
 5 
 6     for( i = 1 ; i < n ; i++ )
 7     {
 8         for( j = 0 ; j < i ; j++ )
 9         {
10             if( a[i] < a[j] )
11             {
12                 temp = a[i];
13                 //移位操作
14                 for( k = i ; k > j ; k--)
15                 {
16                     a[k] = a[k-1];
17                 }
18                 a[k] = temp;
19             }
20             else
21                 continue;
22         }
23     }
24 }

 

posted on 2018-03-21 17:26  菠萝有点甜  阅读(88)  评论(0编辑  收藏  举报