• 史上最详细的C语言和Python的插入排序算法



    史上最详细的C语言和Python的插入排序算法
    插入排序原理:所谓插入排序,就像我们在打牌(斗地主)时,整理我们自己手中自己的牌一样,就像是2,1,3,9,J,K,5,4,这四张牌.
    我们要把它其中的几张牌整理成12345这样的 然后出牌,是不是就得将这几张牌放到一起,或者是说以其中的一张牌为中心,将其他四张按大小进行插入。

     未经同意,请勿转载!如有收货,请留一赞,不胜感激!

        同时欢迎加入我们的qq交流群:326079727

    话不多说上代码:
    C语言:
     1 void insert(){
     2     //define a array which have ten number
     3     int init_array[10]={8,2,1,9,77,55,66,42,3,5};
     4     int j;
     5     int len = sizeof(init_array)/4;//获取数组实际长度
     6     //从第二位开始比较前一位
     7     for (int i = 1; i < len; i++) {
     8         int buffer=init_array[i];
     9         //这里为何要定义一个buffer呢
    10         // 因为后面要对数组元素进行后移 更改顺序 ,所以i不变,但是init_array[i]会变
    11         j=i-1;
    12         while(j>=0&&buffer>init_array[j])
    13             //如果出现比init_array[j]还小的数值,这里就对前面排好序的数组进行后移
    14             //大于号就是从大到小的顺序
    15         {
    16             init_array[j+1]=init_array[j];
    17             j--;
    18         }
    19         init_array[j+1]=buffer;
    20         //将buffer传给init_array[j+1],因为init_array[j]是比buffer还小的数。
    21         // 按照从大到小的顺序,所以buffer要放到init_array[j+1]后面。
    22 
    23     }
    24     for (int k = 0; k < len; ++k) {
    25         printf("%d
    ",init_array[k]);
    26     }
    27 }
    
    

    Python:

    def insert():
        init_array=[2,3,5,1,22,99,44,6,7]
        for i in range(1,len(init_array)):
            j=i-1
            buffer = init_array[i]#这个buffer很重要,这里为何要定义一个buffer呢因为后面要对数组元素进行后移 更改顺序 ,所以i不变,但是init_array[i]会变
            while(j >= 0 and buffer > init_array[j]):#这里也要用buffer进行比较,原因相同
                init_array[j+1] = init_array[j]
                j = j-1
            init_array[j+1] = buffer
        print(init_array)
    insert()
    借此图片 如有侵权 联系本人删除

  • 相关阅读:
    echarts数据可视化之简单使用范例,
    配置用户/系统环境变量的意义与方法
    关于百度echarts数据可视化js插件基本使用样例
    python 博客引用
    泛型
    Java 关键字
    java基本知识点5
    Java 序列化
    java知识点4
    前端知识点总结1
  • 原文地址:https://www.cnblogs.com/szj666/p/11873170.html
Copyright © 2020-2023  润新知