排序算法之直接插入排序

直接插入排序实现(by C++)
代码
 1  #include  < iostream >
 2  using   namespace  std;
 3 
 4  /*
 5  InsertSort::InsertSort( vector<int> _list, int _len ) {
 6      for ( int i = 0; i < _len; ++i )
 7          list.push_back( _list[i] );
 8      this->len = _len;
 9  }
10 
11  void InsertSort::insert_sort() {
12      int insertNum;
13      for ( int i = 1; i < len; ++i ) {
14          insertNum = list[i];
15          int j = i;
16          while ( j > 0 && insertNum < list[j - 1] ) {
17              list[j] = list[j - 1];
18              j--;
19          }
20          list[j] = insertNum;
21      }
22  }
23 
24  void InsertSort::out() {
25      for ( int i = 0; i < len; ++i ) {
26          cout << list[i] << " ";
27          if ( ( i + 1 ) % 18 == 0 )
28              cout << endl;
29      }
30      cout << endl;
31  }
32 
33  */
34  int  a[ 8 =  {  46 58 15 45 90 18 10 62  };
35 
36  void  InsertSort( ) {
37       int  i, j;
38       for  ( i  =   1 ; i  <   8 ++ i ) {
39           int  temp  =  a[i];
40           for  ( j  =  i; j  >   0   &&  temp  <  a[j  -   1 ];  -- j )
41              a[j]  =  a[j  -   1 ];
42          a[j]  =  temp;
43      }
44  }
45 
46  int  main() {
47      InsertSort( );
48       for  (  int  i  =   0 ; i  <   8 ++ i )
49          cout  <<  a[i]  <<   "   " ;
50      cout  <<  endl;
51  }
52 

 

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