冒泡排序和选择排序都是低级排序,效率比较低。低级排序最简单的是冒泡排序。
从当前未排序的整数中找一个最小的整数,将它放在已排序的整数数列列表的最后。
要点:选择排序选最小的,往左边选。
冒泡排序是选择最大的,而选择排序选择最小的,但是选择排序要相对冒泡排序要快,是因为冒泡排序中间有许多交换的操作,选择排序要找到最小然后进行交换。
#include<iostream>
using namespace std;
void SelectSort(int *list,const int n);
int main()
{
    int x[] = {1,3,5,7,9,0,2,4,6,8};
    SelectSort(x,10);
    for(int k=0;k<10;k++)
        cout<<x[k]<<" ";
    cout<<endl;
    system("pause");
    return 0;
}
void SelectSort(int *list,const int n)
{
    for(int i=0;i<n-1;i++) //最外边的循环是寻找最小的值的次数,可以是n次也可以是n-1次。
    {
        int min = i; //min用来做记号,开始时第一个最小
        for(int j= i+1;j<n;j++)
        {
            //每一遍扫描都是从i+1开始扫描,如果我们发现一个最小的,每次扫描的时候没有排序。
            if(list[j]<list[min])
                min = j; //冒泡排序一般发生在该位置。
        }
        swap(list[i],list[min]);//把最小的放在最左边,0到i是已经排序的,i+1到n-1是未排序的,从未排序的里边找一个最小的放到左面
    }
}

C++算法三:选择排序相关推荐

  1. 数据结构与算法:选择排序

    数据结构与算法:选择排序 雪柯 大工生物信息 提笔为写给奋进之人 已关注 8 人赞同了该文章 引用自算法图解,作者[美] Aditya Bhargava 译袁国忠 特别备注:本书非原创,但部分内容自己 ...

  2. 排序---初级排序算法(选择排序、插入排序和希尔排序)

    写在前面的话: 一枚自学Java和算法的工科妹子. 算法学习书目:算法(第四版) Robert Sedgewick 算法视频教程:Coursera  Algorithms Part1&2 本文 ...

  3. 数据结构与算法之选择排序

    数据结构与算法之选择排序 目录 基本介绍 选择排序思想 代码实现 1. 基本介绍 选择排序也属于内部排序法,是从排序的数据中,按指定的规则选出某一元素,再依次交换位置后达到排序的目的 2. 选择排序思 ...

  4. 堆排序算法c语言筛选法,【排序】排序算法之选择排序

    排序算法之选择排序 罗朝辉(http://www.cppblog.com/kesalin) 转载请注明出处 排序是数据处理中经常使用的一种重要运算,在计算机及其应用系统中,花费在排序上的时间在系统运行 ...

  5. C++算法之选择排序

    C++算法之选择排序 文章目录 C++算法之选择排序 一.选择排序 二.题目 1.明明的随机数 2.代码 三.复杂度分析 一.选择排序 选择排序(Selection Sort)是我们学习的第一个排序算 ...

  6. 【排序算法】选择排序(C语言)

    [排序算法]-- 选择排序 目录 一.选择排序的原理 二.选择排序的代码实现 三.选择排序的优化 1. 优化思路 2. 排序优化后问题 3. 优化代码的实现 四.选择排序的效率 一.选择排序的原理 ​ ...

  7. 函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试

    案例描述: 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试 #include <iostream& ...

  8. 排序算法 | 直接选择排序,算法的图解、实现、复杂度和稳定性分析

    排序算法 | 直接选择排序,算法的图解.实现.复杂度和稳定性分析 目录 1.直接选择排序的原理 2.图解直接选择排序 3.算法代码实现 4.算法复杂度分析.稳定性分析 直接选择排序 1.直接选择排序的 ...

  9. 【排序算法】选择排序(Selection sort)

    选择排序(Selection sort)是一种简单直观的排序算法. 选择排序介绍 它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置:接着,再从剩余未排序的元 ...

  10. 排序算法(3)选择排序

    排序算法(3)选择排序 原理:思想:两个变种(1)单侧选择:在一个无序数组中选择出每一轮中最大值(或最小值)元素,放到最前面或最后面(升序)(2)双向选择:在一个无序数组中选择出每一轮中最值元素,然后 ...

最新文章

  1. 在Ubuntu Server上添加NFS共享文件夹
  2. PM2 进程管理工具使用总结
  3. 图像界面编程简单窗体创建
  4. Android使用ViewPager实现左右循环滑动及轮播效果
  5. 如何去除矩阵中的NaN元素
  6. pythonoracle数据库操作_Python学习笔记4(操作oracle数据库)
  7. flask前端显示MySQL数据_flask怎样查询mysql并显示在页面上
  8. 我与微软的不解之缘 - 我的Insider Dev Tour 2019讲师之旅
  9. SpringBoot FK-关联表查询(三)
  10. html下拉表覆盖透明,css透明元素如何遮挡住fixed元素
  11. 计算机内存不足吃鸡怎么办,Win10玩吃鸡游戏提示虚拟内存不足怎么办?
  12. java 传xml js_JavaScript实现的XML与JSON互转功能详解
  13. 写了一百万行代码是什么体验?
  14. 原创:微信小程序调用【统一下单】、【支付】、【支付回调】api并处理请求...
  15. 【换脸软件DFL2.0官方使用手册详解】
  16. python中numpy中的shape和get_shape解析
  17. 火柴棍能组成的最大数字
  18. 打开Skype的时候提醒:TOM-Skype 已经停止工作,这是什么意思? 重装了一遍还是不能用。...
  19. c 语言 蒙特卡洛程序,蒙特卡洛步骤学习(一)
  20. 写底层 jdbc 实现mysql数据库增删改的 合并方法 的类 继承ConnectionFactory 实现DaoMessage接口: 并批量添加数据

热门文章

  1. Mysql面试常见知识点总结(一)
  2. JavaScript基础三
  3. 助AI研究社群发出内建18种预先训练模型工具
  4. 原生JS实现Canvas时钟
  5. Tomcat - 常用配置
  6. Dataguard学习笔记
  7. 关于docker环境下mysql的使用相关
  8. apache配置多个站点
  9. Sonar6.0应用之一:基于centos7.2安装
  10. supervisord进程管理