选择排序同样比较简单。

选择排序原理:

选择排序由多次迭代构成。

每次迭代都从当前序列中选出最小值元素,然后与序列头元素交换,最终头元素即序列最小值。

迭代中下一次迭代的序列由当前迭代中序列(N个元素)的后N-1个元素组成。也即是说当前迭代结束后,去除序列头元素即是下次迭代的序列。

void Swap(int& a, int& b)
{int temp = a;a = b;b = temp;
}void SelectSort(int* pData, int num)
{// i表示每次迭代的开始元素下标for (int i = 0; i < num; ++i){  // minIdx表示每次迭代的最小元素下标int minIdx = i;for (int j = i + 1; j < num; ++j){if (pData[j] < pData[minIdx])minIdx = j;}// 将每次迭代的最小值换到序列头部Swap(pData[i], pData[minIdx]);}
}

选择排序SelectSort相关推荐

  1. 数据算法之选择排序(selectSort)的Java实现

    本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. 选择排序的基本思想是在待排 ...

  2. 黑马程序员——选择排序

    排序算法有很多,记得当初一开始学C时就有这种问题.那个时候会用也最易理解的排序算法,就是选择排序了(当时并不知道这样的算法还有名字). 思想 还是先来看看选择排序的思想.选择排序的思想非常直接,不是要 ...

  3. java 排序 1和1_新手入门-冒泡排序和选择排序第一节排序1.1排序概述排序(

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 新手入门-冒泡排序和选择排序 第一节排序 1.1排序概述 排序(sorting)的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列.  ...

  4. C语言实现选择排序——简单选择排序算法

    C语言实现简单选择排序 文章目录 C语言实现简单选择排序 简单选择排序算法 1.交换操作 2.简单选择排序算法实现 项目完整代码 运行效果图 简单选择排序算法 1.交换操作 //交换实现 void s ...

  5. 排序算法的实现。用C语言编程实现冒泡排序、选择排序、插入排序、shell排序、快速排序、堆排序算法、归并排序。利用随机函数产生N个随机整数(10000以上)。

    #include<stdio.h> #include <time.h> #include<stdlib.h> #define N 10000 double T, T ...

  6. SelectSort 选择排序

    SelectSort 选择排序算法: 总的时间复杂度为O(n^2) 思路是,外循环先遍历第一个数至倒数第二个,设置最小的那个数的索引,内循环为从i+1开始遍历到最后一个,找出有没有比当前最小数索引小的 ...

  7. 经典算法学习——直接选择排序

    直接选择排序和直接插入排序相似,都将数据分为有序区和无序区,所不同的是直接插入排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区.而直接选择排序是从无序区选一个最小的元素直接放到有序区的 ...

  8. 三种基本排序的实现及其效率对比:冒泡排序、选择排序和插入排序

    1 public class ThreeTypesOfBaseSort { 2 // ========================== 三种基本排序的效率对比 ================== ...

  9. 【Java常识】7.0 数组实现冒泡排序、选择排序和二分查找

    1.0 冒泡排序原理 冒泡排序就是:轻的上浮,沉的下降.小的往前排,大的往后走. 原理:若一个N个元素的数组,两个相邻位置比较,如果前面的元素比后面的元素大就换位置. 每一次比较,都是相对最沉的到位. ...

  10. 张仰彪第二排序法_十大排序之冒泡和选择排序

    你好,我是goldsunC 让我们一起进步吧! 排序 所谓排序,就是指将一组数据,按照特定规则调换位置,使数据具有某种顺序关系(递增或递减).在排序过程中,数据的移动方式可分为直接移动和逻辑移动两种. ...

最新文章

  1. jQuery中的.height()、.innerHeight()和.outerHeight()
  2. 同一进程中同一端口如何区分不同的Socket
  3. java学习_java学习原理篇|java程序运行套路
  4. Android之android.os.DeadObjectException原因
  5. P2617-Dynamic Rankings【树套树】
  6. 数据结构树的基本操作_树的各类基本操作(数据结构)
  7. mysql 打包 脚本_windows下mysql自动备份压缩打包时间命名批处理脚本
  8. Eclipse的maven插件最新地址
  9. java上传png_java上传png图片出现红色背景
  10. 十年磨一剑!支付宝自研数据库OceanBase通过阿里云向全球开放
  11. 悉尼大学计算机录取要求,Q 同学_悉尼大学_计算机_录取成功案例分享
  12. UI设计干货|抽屉导航(汉堡菜单)模板素材
  13. 为什么都敏捷开发了项目还会延期?!| 技术头条
  14. VB获取系统目录的简单方法
  15. JavaScript技巧总结和本地存储(一)
  16. 令用EclipseJ2EE创建的Dynamic Web project目录结构与用MyEclipse创建的Web project一样
  17. java404_java这个404你能解决吗?
  18. MySQL技术内幕:InnoDB存储引擎
  19. preparedStatement介绍
  20. vtk 中vtkMapper的各函数解析

热门文章

  1. 关于异常你还不知道的
  2. iOS根据模型获取模型字段以及字段的类型(用于创建数据库的表)
  3. swagger 基础入门
  4. 有1到100共100个数, 从1开始, 每隔1, 2, 3... 个数拿走一个数, 最后剩下几?(约瑟夫环)...
  5. 当IDENTITY_INSERT设置为OFF时不能向表插入显示值。(源:MSSQLServer,错误码:544)
  6. 我的家庭私有云计划-20
  7. C#保存PictureBox或Bitmap图片为bmp|png|gif|jpg格式
  8. 缩短与时间服务器同步时间,局域网内时间服务器架设与客户端设置
  9. Oracle Cluster verification utility failed 的解决方法
  10. 关于对网络学习方法的一点见解