当前位置:   article > 正文

插入排序详解(c语言)_插入排序c语言

插入排序c语言

插入排序的思想就是,先分为有序和无序,从无序当中拿出一个,放到有序的合适位置里面。
真得非常类似于打牌。
这种方法与冒泡法非常的类似 。

  1.   1 //直接插入排序:
  2.   2 #include<iostream>
  3.   3 using namespace std;
  4.   4 void insertSort(int r[],int n);
  5.   5 
  6.   6 int main() {
  7.   7      int r[]={24,1,56,2,14,58,15,89};
  8.   8      for(int i=0;i<8;i++)     {
  9.   9          cout<<r[i]<<'\t';     
  10.  10      }     
  11.  11      cout<<endl;
  12.  12      insertSort(r,8);
  13.  13      for(int i=0;i<8;i++)     {
  14.  14          cout<<r[i]<<'\t';     
  15.  15      }     
  16.  16      cout<<endl;
  17.  17      return 0;
  18.  18  }   
  19.  19  
  20.  20 void insertSort(int r[],int n) {
  21.  21       int j,s;
  22.  22       for(int i=1;i<n;i++)
  23.  23       {           
  24.  24           for(j=i-1,s=r[i];s<r[j] && j>=0;j--)
  25.  25           {             
  26.  26              printf("i=%d,j=%d, s=%d,r[j+1]=%d,r[j]=%d\n",i, j, s, r[j+1], r[j]);
  27.  27              r[j+1]=r[j];              
  28.  28           }  
  29.  29           r[j+1]=s;
  30.  30           for(int k=0;k<8;k++)     {
  31.  31           cout<<r[k]<<'\t';
  32.  32           }
  33.  33           cout<<endl;
  34.  34       }
  35.  35  }
  36. root@codemanager01:/home/maokx/learn/c++/insertSort# g++ insertSort1.cpp -o insertSort1
  37. root@codemanager01:/home/maokx/learn/c++/insertSort# ./insertSort1 
  38. 24    1    56    2    14    58    15    89    
  39. i=1,j=0, s=1,r[j+1]=1,r[j]=24
  40. 1    24    56    2    14    58    15    89 ---注:这是插入第2张牌   
  41. 1    24    56    2    14    58    15    89 ---注:这是插入第3张牌  
  42. i=3,j=2, s=2,r[j+1]=2,r[j]=56
  43. i=3,j=1, s=2,r[j+1]=56,r[j]=24
  44. 1    2    24    56    14    58    15    89 ---注:这是插入第4张牌    
  45. i=4,j=3, s=14,r[j+1]=14,r[j]=56
  46. i=4,j=2, s=14,r[j+1]=56,r[j]=24
  47. 1    2    14    24    56    58    15    89 ---注:这是插入第5张牌    
  48. 1    2    14    24    56    58    15    89 ---注:这是插入第6张牌   
  49. i=6,j=5, s=15,r[j+1]=15,r[j]=58
  50. i=6,j=4, s=15,r[j+1]=58,r[j]=56
  51. i=6,j=3, s=15,r[j+1]=56,r[j]=24
  52. 1    2    14    15    24    56    58    89    ---注:这是插入第7张牌
  53. 1    2    14    15    24    56    58    89    ---注:这是插入第8张牌
  54. 1    2    14    15    24    56    58    89     
  55. root@codemanager01:/home/maokx/learn/c++/insertSort# 

 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号