zoukankan      html  css  js  c++  java
  • 插入排序

    参考:

    《linux c编程一站式学习》的例11.1

    思想:

      插入排序类似于玩扑克牌时的抓牌过程,玩家每拿到一张牌都要将其插入手中已有的牌里,使之从小到到大排序

    code:

     1 #include <stdio.h>
     2 
     3 #define LEN 5
     4 int testData[LEN] = {10, 5, 2, 4, 7};
     5 
     6 void insertion_sort(void)
     7 {//从小到大排序,下标0的位置保存最小值
     8     int i, j;
     9     int key; //好比是新拿到的那张牌
    10     for(i=1; i<LEN; i++){
    11         printf("%d, %d, %d, %d, %d
    ", testData[0], testData[1], testData[2], testData[3], testData[4]);
    12         key =  testData[i];
    13         for(j=i-1; j>=0; j--){
    14             if(key > testData[j])
    15                 break;//当前牌的值比前面最后牌的值大,则跳出循环(因为前面是已经排好序的数据)
    16             testData[j+1] = testData[j]; //否则需要向后挪一个位置,留出空间插入新牌
    17         }
    18         testData[j+1] = key;//插入新牌
    19     }
    20     printf("%d, %d, %d, %d, %d
    ", testData[0], testData[1], testData[2], testData[3], testData[4]);
    21 }
    22 
    23 int main(int argc, char *argv[])
    24 {
    25     insertion_sort();
    26     return 0;
    27 }

    截图:

  • 相关阅读:
    菜根谭#39
    菜根谭#38
    菜根谭#37
    菜根谭#36
    菜根谭#35
    菜根谭#34
    菜根谭#33
    菜根谭#32
    mysqli的使用
    mysql常用修改创建语句
  • 原文地址:https://www.cnblogs.com/shanyu20/p/10932142.html
Copyright © 2011-2022 走看看