zoukankan      html  css  js  c++  java
  • 2)选择排序算法

    (1)原理讲解:

        假如我是升序的:

            

     

      选择排序,就是我拿一个数作为最初的参照点,(一般,就是拿第一个作为参照点)

          (1)  10和7比较, 10比7大,然后交换  顺序变成:710,1,9~~~~~

          (2)  7和1比较,7比1大,然后交换,顺序变成:1,10,7,9~~~~~

          (3)  1和9比较,9比1大,不用交换,顺序还是1,10,7,9~~~~

          (4)   1和4比,和6比,和2比,和3比都小,所以顺序不变

          (5)  1和0比,1比0大,然后交换,顺序变成:0,10,7,9,4,6,7,3,2,1

      上面是第一轮比较,然后,你会发现,第一轮的第一个数字是整个数字的最小的一个

        然后按照同样的思路,进行第二轮排序:~~~~~~~~~~~~~~~~~~
        然后按照同样的思路,进行第三轮排序:~~~~~~~~~~~~~~~~~~~~~~

    ~~~~~~~~~~~~~~~~等等:
        基本代码实现:

     1  1 int a[]={10719467320};
     2  2 for(i=0;i<n;i++)//这个是进行了几轮
     3  3 {
     4  4     for(j=i+1;j<n,j++)//这个是进行每轮的比较
     5  5         {
     6  6     if(a[i]>a[j])//按照升序排的
     7  7 {
     8  8     t=a[i];
     9  9     a[i]=a[j];
    10 10     a[j]=t;
    11 11 
    12 12 }
    13 13 
    14 14 }
    15 21 }

    以后看别人带有算法的代码,基本思路就是:
      1.看流程

      2.每个语句的功能

      3.试数  就是一个数,一个数的试一试,不要嫌麻烦

      4.调试

      5.模仿改  要学会模仿

    (1)如果数组作为参数,那么数组形参退化为指针

        比如:void Print_array(int a[100],int n)

            这个100,其实写不写,无所谓  

          上面的函数可以写成:

          void Print_array(int *a,int n)

  • 相关阅读:
    java中 Hex(十六进制)和byte[]相互转换
    byte[]和File相互转换
    Stringboot MultiPartFile 转 File
    mysql8.0+运行报错The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. 解决办法
    idea激活
    mysql8安装成功过后navicat连接失败
    AJAX的使用
    单文件上传和多文件上传实例
    监听器的使用
    SQL分页技术
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/8007275.html
Copyright © 2011-2022 走看看