简单选择排序 c代码
简单选择排序思路是从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代码相关推荐
- 【数据结构-排序】3.图解选择排序两种实现(简单选择排序/堆排序)
简单选择排序(选择排序) 排序思想 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置 然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾. 以此类推,直到所有元素 ...
- 数据结构 - 简单选择排序法
数据结构 - 简单选择排序法 在之前的博文里已经介绍过排序的两个基本方法: 双重循环法和冒泡排序法. 基本思想 其实上面两种方法的基本思想都是一样的: 就是将排序步骤分成两层循环, 在内层的每1个循环 ...
- 选择排序java代码_JAVA简单选择排序算法原理及实现
简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1) 复杂度: ...
- 数据结构(C语言版)——简单选择排序(代码版)
一.代码 #include <stdio.h> #include <stdlib.h>#define MAXSIZE 20 #define ERROR 0 #define OK ...
- 【排序算法】简单选择排序及实例_C语言代码实现_Python代码实现
博客对您有所帮助的话,欢迎给个赞啦,你的鼓励是对我最大的支持! 有不足之处也请您评论指教 简单选择排序 简单选择排序是选择排序的一种. 问:那么什么是选择排序? 答:每趟从待排序的记录中选出关键字最小 ...
- 排序算法-O(n^2)-优化后的冒泡、简单选择、直接插入 代码实践、解释等
博主将代码先撸为敬,具体解释均在代码里面. 一 以表格的形式整体出各经典算法的定义(多个版本).理解.示例.比较.总结等 --------------------为反馈划下华丽的分割线-------- ...
- 交换排序图解_图解简单选择排序
简单选择排序 有如下数组,我们需要对它从小到大排序,步骤如下: 在数组中找到最小值,然后与第一个位置交换. 除去第一个位置在数组中继续找最小值,与第二个位置交换,以此类推,直到末尾. 下图展示了整个交 ...
- 排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序...
先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎 ...
- 《排序算法系列一、简单选择排序》
2019独角兽企业重金招聘Python工程师标准>>> 一.简单选择排序 描述:给定待排序序列A[ 0......n ] ,选择出第i小元素,并和A[i]交换,这就是一趟简单选择排序 ...
最新文章
- golang笔记——struct
- 去除word文档中向下的箭头图标
- java中optionnull_用 option 代替 null
- Spring Cloud Eureka 自我保护机制
- spring四种依赖注入方式
- python运维脚本部署jdk_基于Java/Python搭建Web UI自动化环境
- linux 中文 音乐播放器,linux下的常见音乐播放器
- 使用一下SQL Server 2008中的新日期函数
- dataframe读取列表中对应的列
- 有关SQL Server中日期的常见问题解答
- 智能优化算法:水基湍流优化算法-附代码
- html5--select与HTML5新增的datalist元素
- php 5的手册,本手册中所涉及的 PHP 版本 - PHP 5 中文文档
- 从理论到工程实践——用户画像入门宝典
- eclipse汉化 eclipse汉化版退回英文版详细介绍
- java诸神47723_诸神战纪二-死神之谜
- 『每周译Go』并发安全的集中式指针管理设施
- android点赞功能源码,Android实现朋友圈点赞列表
- 基于SSH的校园网上订餐系统
- 计算机oa学些什么,OA是什么意思?OA可以干什么 -电脑资料
热门文章
- 100m和1000m网线的常见制作方法
- 2013年1季度中国汽车品牌口碑研究报告 ——自主A级车
- Win8离线添加Net Framework 3.5功能
- jdbc和mysql面试题_JDBC数据访问技术面试题(附答案)
- vuetify table_vuex 封装设计全局可用的vuetify中的snackbar
- 1.15 总结-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
- 3.7 为什么需要非线性激活函数-深度学习-Stanford吴恩达教授
- UE选择合适的小区进行驻留以后
- python基础7 (来自廖雪峰的官方网站)
- ESP32的FLASH、NVS、SPIFFS、OTA等存储分布以及启动过程