选择排序是排序算法中一个重要的内容,其排序思想:就是在列表中找到最小的数,其和列表的第0位的元素进行位置交换,此时列表中最小的元素就确定下来了,今后就不用再比较了此部分了,因为该部分被称为有序区域,那么其后面的部分仍然是无需区域,所以再这无序区域中再找最小的元素并和该无序区域的第一位置的元素进行位置交换,并将此次最小的元素加入到有序部分中,以此类推完成选择排序(简单理解:一趟排序记录最小的数,放在第一个位置,再一趟排序记录列表无序区域最小的数,放到第二个位置,以此类推)

接下来我们举个案例,让大家能充分理解选择排序:

创建一个无序的列表如下图所示:

此时该列表都是无序排列的,第一趟将通过列表从左到右一一对比发现最小的元素是列表第2位的元素1是最小的,此时元素1和位于里列表的第0位的元素4进行位置交换如下图所示,交换后,元素1所在的红色区域叫做有序区域

第二趟我们继续在白色区域(即无序区域)从左到右一一对比发现最小的元素是列表第3位的元素2是最小的,此时将元素2和位于列表的第1位的元素5进行位置交换如下图所示,交换后,元素2加入到红色区域成为有序区域的一员

以此类推,第三趟结果如下:

第四趟结果如下:

第五趟结果如下:

经过五趟处理后,此时列表已经从无序变为有序了,接下来我们通过代码来实现:

运行结果如下:







©著作权归作者所有:来自51CTO博客作者jinzhenwells的原创作品,如需转载,请与作者联系,否则将追究法律责任

更多相关文章

  1. Microsoft Ignite 2021:Azure Resource Mover 新特性
  2. Python的数学运算:Python_Course
  3. 构造函数、dom元素的基础
  4. web前端技术分享之:Canvas框架之Konva.js --元素节点的事件
  5. Selenium3自动化测试【15】元素定位之Class、Name
  6. 【Redis】PHP操作Redis的命令大全
  7. 有关Python参数的思考
  8. 线性表之链式存储(二)
  9. JQuery初学习之`attr()`、`css()`、`val()`、`html()`、`text()`

随机推荐

  1. android设定手机的显示模式,横竖屏,是否全
  2. [转载]系统内置的一些工具类
  3. 自定义RadioButton 文字在下,图片在上
  4. android中shape的使用(android:angle小解)
  5. [置顶] Android:图解Activity启动流程源码
  6. 使用Android(安卓)Studio在64位Ubuntu环
  7. Android系统信息和安全机制(学习笔记)
  8. Android 第七天(下午)
  9. Android Menu
  10. Android/java 多线程(六)-AsyncTask使用