<什么是选择法>

选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。

<解题思路>

(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题——用选择法排序相关推荐

  1. C语言经典100题——用筛选法求100之内的素数

    <1>什么是筛选法 所谓筛选法是指"埃拉托色尼筛法",埃拉托色尼是古希腊的著名数学家.它采用的方法是,在一张纸上写上1~1000的全部整数,然后逐个判断他们是否为素数, ...

  2. c语言 swap交换函数_C语言经典100题(14)

    1 上期答案揭晓 首先给大家看看上一篇文章C语言经典100题(13)中第三部分编程题的答案: #includeint main(){ int i,x,y,z; for(i=100;i<1000; ...

  3. c语言三个数从小到大排序/输出_C语言经典100题(6)

    1 上期答案揭晓 首先给大家看看上一篇文章C语言经典100题(5)中第三部分编程题的答案: #include int main(){ int x,y,z,t; printf("\n请输入三个 ...

  4. 完数c++语言程序_C语言经典100题(19)

    1 上期答案揭晓 首先给大家看看上一篇文章C语言经典100题(18)中第三部分编程题的答案: #includeint main(){ int s=0,a,n,t; printf("请输入 a ...

  5. c++ 经典代码_C语言经典100题(31)

    1 上期答案揭晓 首先给大家看看上一篇文章C语言经典100题(30)中第三部分编程题的答案: #include int main( ){ long ge,shi,qian,wan,x; printf( ...

  6. C语言--经典100题

    [2020-10-10] 1.题目:有1.2.3.4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? /* 题目:有1.2.3.4四个数字,能组成多少个互不相同且无重复数字的三位数?都是 ...

  7. 【C语言经典100题】求a+aa+aaa+....的值

    文章目录 题目 一.分析 二.代码 总结 题目

  8. C语言经典100题——求一个二维数组的鞍点

    <1>题目描述 找一个二维数组中的鞍点,即该位置上的元素在该行上最大.在该列上最小.也可能没有鞍点 1 2 3 4 5 6 7 8 9 //3为该二维数组中鞍点 <2>思路分析 ...

  9. 【C语言经典100题】(古典问题)兔子问题

    文章目录 题目 一.分析 二.代码 总结 题目

最新文章

  1. 为什么AI的翻译水平还远不能和人类相比?
  2. JAVA常见算法题(十三)
  3. linux生成数字命令,Linux下随机生成密码的命令
  4. html语言中base,HTML base 标签
  5. 深入理解ThreadLocal变量的功能和使用
  6. HDU2519 新生晚会【组合计算】
  7. 【java笔记】线程(4):匿名内部类创建线程
  8. 总结一下最近用到的技术(2)--JsonSchema和JsonSchemaValidator
  9. OpenStack 存储服务 Cinder介绍和控制节点部署 (十三)
  10. 拓端tecdat|R语言Fama French (FF) 三因子模型和CAPM多因素扩展模型分析股票市场投资组合风险/收益可视化
  11. Vdbench工具文件系统测试记录
  12. 制作 macOS High Sierra 正式版 USB 启动盘的方法 (亲测可用)
  13. Think in Java 4 中关于使用XOM操作xml文件
  14. intellij idea cpu占用率太大太满 运行速度太慢 使了五个解决方法最终成功
  15. MPC系列:Beaver三元组和BMR协议
  16. 基于MATLAB GUI界面的串口小助手
  17. OpenAI的API key获取方法
  18. Mac使用Homebrew极速安装启动RabbitMQ一把梭
  19. 出炉!2021 编程语言排行榜~
  20. 如何解决计算工作日的问题?

热门文章

  1. Mysql出现which is not functionally dependent on columns in GROUP BY clause的解决办法
  2. C++怎么保留有效数字
  3. 你觉得什么样的程序员才算真正的大神?我今天想说两句!
  4. 爬取汽车之家,新车销售情况,看看大家选车的侧重点在哪
  5. ReactNative 开发Android App
  6. getAttribute()、setAttribute()、removeAttribute()的方法使用以及区别。
  7. 《食用斑兰叶(粉)》团体标准 大健康医药·李喜贵:通过审定
  8. SharePoint2010分享
  9. 相亲交友小程序/婚恋相亲同城交友/婚恋红娘源码系统/多风格/带红娘/H5/小程序
  10. Proteus仿真:利用74HC164的串入并出功能实现流水灯