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

    插入排序

    /*******************************************************
     *
     *插入排序
     *
     *
     *******************************************************/
    #include<stdio.h>
    
    #define LEN 5
    int a[LEN] = {10, 5, 2, 4, 7};
    
    void InsertionSort(void)
    {
        int i, j, key;
        for (j = 1; j < LEN; j++)
        {
            key = a[j];
            i = j - 1;
            while (i >= 0 && a[i] > key)
            {
                a[i+1] = a[i];
                i--;
            }
            a[i+1] = key; 
        }
        
    }
    
    int main(void)
    {
        InsertionSort();
        return 0;
    }

     php插入排序:

    <?php
     function InsertionSort($arr)
     {
             $len = count($arr);
             for ($j = 1; $j < $len; $j++)
             {
                  $temp = $arr[$j];
                  $i = $j - 1;
                  while ($i >= 0 && $arr[$i] > $temp)
                  {
                       $arr[$i+1] = $arr[$i];
                       $i--;
                  }
                  $arr[$i+1] = $temp;
             }
             print_r($arr);
             return $arr;                       
     }
     $arr = array(10,5,2,4,7);
     InsertionSort($arr);
    ?>

    算法描述:

    1.从第一个元素开始,该元素可以认为已经被排序;(j=0的那个元素)

    2.取出下一个元素,在已经排序的元素序列中从后向前扫描;

    10, 5, 2, 4, 7

    5, 10, 2, 4, 7

    2, 5, 10, 4, 7

    2, 4, 5, 10, 7

    2, 4, 5, 7, 10

    3.如果元素(已排序)大于新元素,将该元素移到下一位置;(10,5 => 5,10)

    4.重复步骤3,直到已经找到已排序元素小于或等于新元素的位置;

    5.将新元素插入到该位置中;

    6.重复步骤2。

  • 相关阅读:
    进度条功能
    网络编程
    并发编程
    UUID
    serverless 近期热度
    力扣 98. 验证二叉搜索树
    循环中多线程参数为空bug
    从头解决PKIX path building failed
    国内jenkins搭建不再龟速的方式
    CoachAI 2019年12月~2020年3月实习总结
  • 原文地址:https://www.cnblogs.com/zhaozhilu/p/2847505.html
Copyright © 2011-2022 走看看