zoukankan      html  css  js  c++  java
  • 数据结构与算法之选择排序(C++)

      前面我们讲了一下冒泡排序,原理比较简单,但是我们发现他的排序比较慢,需要不断的进行数据的交换。然后我们来讲一讲选择排序,他不用一直进行数据的交换,他会找到最小的那个数,放在最左边,跟冒泡排序的不同之处,冒泡是两个数之间的比较,大的那个数放到右边。

    选择排序

    选择排序的原理也比较好理解,比如我们有n个数,我们要对这n个数进行排序,那么一样我们需要进行数据的扫描,寻找最小的那个数,放在最左边,有一点我们是需要注意的是冒泡排序每次都是从第一个数开始扫描的,而选择排序的话是第一次是从第二开始扫描,而第二次则是从第三始扫描的,因为第一个数已经是最小的了,就不在需要进行扫描比较了。

    话不多说,用程序理解一下

    1 #include<iostream>
     2 
     3 using namespace std;
     4 
     5 void SelectSort(int *list , int n);
     6 
     7 int main()
     8 {
     9     int a[] = {2,4,6,8,0,1,3,5,7,9};
    10     SelectSort(a,10);                                                                  
    11     for(int k=0; k<10; k++)
    12         cout << a[k] <<endl;
    13 
    14     return 0;
    15 }
    16 
    17 void SelectSort(int *list, int n)
    18 {
    19     for(int i=0; i<n-1; i++)
    20     {
    21         int min = i;
    22         for(int j=i+1; j<n; j++)
    23         {
    24             if(list[j]<list[min])
    25                 min = j;
    26         }
    27         swap(list[i],list[min]);
    28     }
    29 
    30 }
  • 相关阅读:
    Python反射函数
    类之特性
    ThinkPHP框架基础知识一
    smarty变量调节器与函数
    smarty模板及其应用
    php……流程
    php......权限管理
    php......文件上传
    php......注册审核
    php......留言板
  • 原文地址:https://www.cnblogs.com/tanshengjiang/p/14221636.html
Copyright © 2011-2022 走看看