zoukankan      html  css  js  c++  java
  • C/C++ -- 插入排序算法

    索引:

    目录索引

    参看代码 GitHub:

    Sort.cpp

    代码简要分析说明:

      1.for(int i=1;i<nSize;i++)

        这个外层的for循环, [0][1],[1][2],[2][3]... 这样的顺序让内层循坏开始索引递减比较,保证每对开头

        的内层循坏排序前,前面的都是排序好的

      2.while (tmp<ary[n])  ... n-- ...

         这个内层的while循环,使外层的每对开头的循环开始,若比较后大小为真,则换位, n-- 保证了 第 n+1 位也就是 i 索引对应

         的值始终可以排到正确的位置

      3.运行环境

         Visual C++ 2008 IDE 环境, 建议实际跑一下并调试一下,结果如下:

       

      4.代码:

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 // 定义函数 -- 插入排序算法
     6 void Sort(int* ary,int nSize)
     7 {
     8     /*
     9     * 循环元素,动态理解:
    10     * arr[1] 与 arr[0] 比较
    11     * arr[2] 与 arr[1],arr[0] 比较
    12     * arr[3] 与 arr[2],arr[1],arr[0] 比较
    13     * 等等 依次类推
    14     */
    15     for(int i=1;i<nSize;i++)
    16     {
    17         int tmp=ary[i];
    18         int n=i-1;
    19 
    20         // 若后位元素小于前位元素则交换位置
    21         while (tmp<ary[n])
    22         {
    23             ary[n+1]=ary[n];
    24 
    25             // 元素为动态递减
    26             n--;
    27 
    28             // 到第一位元素后,无前位元素,跳出
    29             if(n==-1)
    30             {
    31                 break;
    32             }
    33         }
    34 
    35         ary[n+1]=tmp;
    36     }
    37 }
    38 
    39 int main(int argc, char* argv[])
    40 {
    41     // 需要排序的数组
    42     int numArray[]={12,31,5,87,1,56};
    43     int nLength=sizeof(numArray)/sizeof(int);
    44 
    45     // 排序
    46     Sort(numArray,nLength);
    47 
    48     // 显示排序后的结果
    49     for(int k=0;k<nLength;k++)
    50     {
    51         cout<<numArray[k]<<",";
    52     }
    53     cout<<endl;
    54 
    55     // 退出
    56     return 0;
    57 }

                                             蒙

                                        2018-06-12 21:50 周二

  • 相关阅读:
    NETCore中RabbitMQ的使用
    net core 中间件
    表达式和表达式树
    NET
    解决Net内存泄露原因
    Spring的IoC容器-Spring BeanFactory容器
    Spring的Hello World工程
    Linux下使用curl进行http请求(转)
    Java教程收集
    使用wget进行整站下载(转)
  • 原文地址:https://www.cnblogs.com/Meng-NET/p/9175230.html
Copyright © 2011-2022 走看看