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)

原文地址:https://www.cnblogs.com/xiaoyoucai/p/8007275.html