• 排序算法 之 选择排序


    
    
     1 #include <iostream>
     2 using namespace std;
     3 void selectSort(int data[],int length)
     4 {
     5     if (data == nullptr || length <= 0)
     6     {
     7         return;
     8     }
     9     for (int i = 0 ,j;i < length-1 ; ++i)
    10     {
    11         int least = i+1 ;
    12         for(j = i+1 ; j < length ; j++)
    13         {
    14             if (data[j] < data[least])
    15             {
    16                 least = j ;
    17             }
    18         }
    19         swap(data[i],data[least]);
    20         printf("第%d次排序后的结果 : " ,i+1);
    21         for (int i =0 ;i < length ;++i)
    22         {
    23             printf("%d ",data[i]);
    24         }
    25         printf("
    ");
    26     }
    27 }
    28 int main()
    29 {
    30     int data[] = {2,5,1,4,0,-3,59,-78,62,3};
    31     selectSort(data,sizeof(data)/sizeof(int));
    32     printf("
    
    ");
    33     for (int i =0 ;i < sizeof(data)/sizeof(int) ;++i)
    34     {
    35         printf("%d ",data[i]);
    36     }
    37     printf("
    ");
    38     return 0;
    39 }
    ///可以发现每次排序后,总是把次小的找出来,放到对应的位置上

    最后的结果为:

    第1次排序后的结果 : -78 5 1 4 0 -3 59 2 62 3
    第2次排序后的结果 : -78 -3 1 4 0 5 59 2 62 3
    第3次排序后的结果 : -78 -3 0 4 1 5 59 2 62 3
    第4次排序后的结果 : -78 -3 0 1 4 5 59 2 62 3
    第5次排序后的结果 : -78 -3 0 1 2 5 59 4 62 3
    第6次排序后的结果 : -78 -3 0 1 2 3 59 4 62 5
    第7次排序后的结果 : -78 -3 0 1 2 3 4 59 62 5
    第8次排序后的结果 : -78 -3 0 1 2 3 4 5 62 59
    第9次排序后的结果 : -78 -3 0 1 2 3 4 5 59 62

    -78 -3 0 1 2 3 4 5 59 62
    请按任意键继续. . .
    To get,you have to give.To give,you need learn to insist.If you really find it is hard for you,then you quit.But once you quit.Don't complain.
  • 相关阅读:
    JS焦点图手动切换
    Cookie
    javaScript字符串方法(常用的)
    javaScript函数
    JavaScript条件语句和循环语句
    JavaScript基本的数据类型
    数据库的四个基本语句
    CSS文本样式
    HTML图片
    C#集合
  • 原文地址:https://www.cnblogs.com/hit-ycy/p/10852302.html
Copyright © 2020-2023  润新知