C语言经典100题——用选择法排序
<什么是选择法>
选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。
<解题思路>
(1)将数列中的最小数的下标找到
(2)让数列中第一个数与最小数通过下标交换位置
(3)将剩下数列中的最小数的下标找到,让剩下数列中第一个数与最小数通过下标交换位置
(4)重复上面2~3步,直到将整个数列排序完
<3>代码实现
int main()
{int arr[] = {11,1,7,10,9,100,8,4,2,13};int sz = sizeof(arr) / sizeof(arr[0]);int i,j,k;for(i=0;i<sz;i++){int min = arr[i];for (j = i; j < sz; j++){ if (arr[j] < min){min = arr[j]; //这样完成以后min必定是数组中最小的数k = j; //将最小数的下标找到}}int tmp = arr[k]; //找到下标以后将他与第一个数交换arr[k] = arr[i];arr[i] = tmp;k = i+1; //这里是为了防止上一次执行完毕的k对下一次数的交换造成影响}for (i = 0;i < sz; i++){printf("%d ", arr[i]);}return 0;
}
如果降序,只需要将min改成max,然后将arr[j]<min改成arr[j]>max
<结果展示>
如果这题对你有帮助,还请多多点赞,谢谢铁子
C语言经典100题——用选择法排序相关推荐
- C语言经典100题——用筛选法求100之内的素数
<1>什么是筛选法 所谓筛选法是指"埃拉托色尼筛法",埃拉托色尼是古希腊的著名数学家.它采用的方法是,在一张纸上写上1~1000的全部整数,然后逐个判断他们是否为素数, ...
- c语言 swap交换函数_C语言经典100题(14)
1 上期答案揭晓 首先给大家看看上一篇文章C语言经典100题(13)中第三部分编程题的答案: #includeint main(){ int i,x,y,z; for(i=100;i<1000; ...
- c语言三个数从小到大排序/输出_C语言经典100题(6)
1 上期答案揭晓 首先给大家看看上一篇文章C语言经典100题(5)中第三部分编程题的答案: #include int main(){ int x,y,z,t; printf("\n请输入三个 ...
- 完数c++语言程序_C语言经典100题(19)
1 上期答案揭晓 首先给大家看看上一篇文章C语言经典100题(18)中第三部分编程题的答案: #includeint main(){ int s=0,a,n,t; printf("请输入 a ...
- c++ 经典代码_C语言经典100题(31)
1 上期答案揭晓 首先给大家看看上一篇文章C语言经典100题(30)中第三部分编程题的答案: #include int main( ){ long ge,shi,qian,wan,x; printf( ...
- C语言--经典100题
[2020-10-10] 1.题目:有1.2.3.4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? /* 题目:有1.2.3.4四个数字,能组成多少个互不相同且无重复数字的三位数?都是 ...
- 【C语言经典100题】求a+aa+aaa+....的值
文章目录 题目 一.分析 二.代码 总结 题目
- C语言经典100题——求一个二维数组的鞍点
<1>题目描述 找一个二维数组中的鞍点,即该位置上的元素在该行上最大.在该列上最小.也可能没有鞍点 1 2 3 4 5 6 7 8 9 //3为该二维数组中鞍点 <2>思路分析 ...
- 【C语言经典100题】(古典问题)兔子问题
文章目录 题目 一.分析 二.代码 总结 题目
最新文章
- 为什么AI的翻译水平还远不能和人类相比?
- JAVA常见算法题(十三)
- linux生成数字命令,Linux下随机生成密码的命令
- html语言中base,HTML base 标签
- 深入理解ThreadLocal变量的功能和使用
- HDU2519 新生晚会【组合计算】
- 【java笔记】线程(4):匿名内部类创建线程
- 总结一下最近用到的技术(2)--JsonSchema和JsonSchemaValidator
- OpenStack 存储服务 Cinder介绍和控制节点部署 (十三)
- 拓端tecdat|R语言Fama French (FF) 三因子模型和CAPM多因素扩展模型分析股票市场投资组合风险/收益可视化
- Vdbench工具文件系统测试记录
- 制作 macOS High Sierra 正式版 USB 启动盘的方法 (亲测可用)
- Think in Java 4 中关于使用XOM操作xml文件
- intellij idea cpu占用率太大太满 运行速度太慢 使了五个解决方法最终成功
- MPC系列:Beaver三元组和BMR协议
- 基于MATLAB GUI界面的串口小助手
- OpenAI的API key获取方法
- Mac使用Homebrew极速安装启动RabbitMQ一把梭
- 出炉!2021 编程语言排行榜~
- 如何解决计算工作日的问题?
热门文章
- Mysql出现which is not functionally dependent on columns in GROUP BY clause的解决办法
- C++怎么保留有效数字
- 你觉得什么样的程序员才算真正的大神?我今天想说两句!
- 爬取汽车之家,新车销售情况,看看大家选车的侧重点在哪
- ReactNative 开发Android App
- getAttribute()、setAttribute()、removeAttribute()的方法使用以及区别。
- 《食用斑兰叶(粉)》团体标准 大健康医药·李喜贵:通过审定
- SharePoint2010分享
- 相亲交友小程序/婚恋相亲同城交友/婚恋红娘源码系统/多风格/带红娘/H5/小程序
- Proteus仿真:利用74HC164的串入并出功能实现流水灯