简单选择排序思路是从i开始遍历,选择最小值插入到arr[ i ], 下一次从i + 1处遍历,直到遍历完成。思路和冒泡排序刚好相反,冒泡排序是每次遍历时选取最大值,简单选择遍历每次选取最小值,冒泡排序过程的确像水中冒泡的样子,但要是这样,简单选择排序不是应该叫做沉底排序吗?每次遍历,最小值沉了下去。

代码比较简单,遍历选取最小值。下面是c语言实现:

//两数交换
void swap(int *a, int *b)
{*a = *a ^ *b;*b = *a ^ *b;*a = *a ^ *b;
}//简单选择排序
void selectSort(int *arr, int numsSize)
{int i, j, minLoc, minValue;minValue = arr[0];for (i = 0; i < numsSize - 1; i++){//保存当前最小值及所在位置minLoc = i;minValue = arr[i];//查找最小值for (j = i + 1; j < numsSize; j++){if (minValue > arr[j]){minValue = arr[j];minLoc = j;}            }//保存if (i != minLoc)swap (arr + i, arr + minLoc);}
}

=============================================================================================

Linux应用程序、内核、驱动、后台开发交流讨论群(745510310),感兴趣的同学可以加群讨论、交流、资料查找等,前进的道路上,你不是一个人奥^_^。

简单选择排序 c代码相关推荐

  1. 【数据结构-排序】3.图解选择排序两种实现(简单选择排序/堆排序)

    简单选择排序(选择排序) 排序思想 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置 然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾. 以此类推,直到所有元素 ...

  2. 数据结构 - 简单选择排序法

    数据结构 - 简单选择排序法 在之前的博文里已经介绍过排序的两个基本方法: 双重循环法和冒泡排序法. 基本思想 其实上面两种方法的基本思想都是一样的: 就是将排序步骤分成两层循环, 在内层的每1个循环 ...

  3. 选择排序java代码_JAVA简单选择排序算法原理及实现

    简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1) 复杂度: ...

  4. 数据结构(C语言版)——简单选择排序(代码版)

    一.代码 #include <stdio.h> #include <stdlib.h>#define MAXSIZE 20 #define ERROR 0 #define OK ...

  5. 【排序算法】简单选择排序及实例_C语言代码实现_Python代码实现

    博客对您有所帮助的话,欢迎给个赞啦,你的鼓励是对我最大的支持! 有不足之处也请您评论指教 简单选择排序 简单选择排序是选择排序的一种. 问:那么什么是选择排序? 答:每趟从待排序的记录中选出关键字最小 ...

  6. 排序算法-O(n^2)-优化后的冒泡、简单选择、直接插入 代码实践、解释等

    博主将代码先撸为敬,具体解释均在代码里面. 一 以表格的形式整体出各经典算法的定义(多个版本).理解.示例.比较.总结等 --------------------为反馈划下华丽的分割线-------- ...

  7. 交换排序图解_图解简单选择排序

    简单选择排序 有如下数组,我们需要对它从小到大排序,步骤如下: 在数组中找到最小值,然后与第一个位置交换. 除去第一个位置在数组中继续找最小值,与第二个位置交换,以此类推,直到末尾. 下图展示了整个交 ...

  8. 排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序...

    先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎 ...

  9. 《排序算法系列一、简单选择排序》

    2019独角兽企业重金招聘Python工程师标准>>> 一.简单选择排序 描述:给定待排序序列A[ 0......n ] ,选择出第i小元素,并和A[i]交换,这就是一趟简单选择排序 ...

最新文章

  1. golang笔记——struct
  2. 去除word文档中向下的箭头图标
  3. java中optionnull_用 option 代替 null
  4. Spring Cloud Eureka 自我保护机制
  5. spring四种依赖注入方式
  6. python运维脚本部署jdk_基于Java/Python搭建Web UI自动化环境
  7. linux 中文 音乐播放器,linux下的常见音乐播放器
  8. 使用一下SQL Server 2008中的新日期函数
  9. dataframe读取列表中对应的列
  10. 有关SQL Server中日期的常见问题解答
  11. 智能优化算法:水基湍流优化算法-附代码
  12. html5--select与HTML5新增的datalist元素
  13. php 5的手册,本手册中所涉及的 PHP 版本 - PHP 5 中文文档
  14. 从理论到工程实践——用户画像入门宝典
  15. eclipse汉化 eclipse汉化版退回英文版详细介绍
  16. java诸神47723_诸神战纪二-死神之谜
  17. 『每周译Go』并发安全的集中式指针管理设施
  18. android点赞功能源码,Android实现朋友圈点赞列表
  19. 基于SSH的校园网上订餐系统
  20. 计算机oa学些什么,OA是什么意思?OA可以干什么 -电脑资料

热门文章

  1. 100m和1000m网线的常见制作方法
  2. 2013年1季度中国汽车品牌口碑研究报告 ——自主A级车
  3. Win8离线添加Net Framework 3.5功能
  4. jdbc和mysql面试题_JDBC数据访问技术面试题(附答案)
  5. vuetify table_vuex 封装设计全局可用的vuetify中的snackbar
  6. 1.15 总结-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  7. 3.7 为什么需要非线性激活函数-深度学习-Stanford吴恩达教授
  8. UE选择合适的小区进行驻留以后
  9. python基础7 (来自廖雪峰的官方网站)
  10. ESP32的FLASH、NVS、SPIFFS、OTA等存储分布以及启动过程