栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言中的选择排序

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言中的选择排序

文章目录
  • 前言
  • 一、选择排序
    • 1.计算素组元素个数
    • 2.选择排序基本逻辑(例子是从大到小排列)
    • 3.具体实现
      • 1.外层循环: 决定大回合个数 每个大回合决出一个席位
      • 2.内层循环: 决定小回合个数 每个小回合进行1V1大战 实力强的为擂主 直至最后一位挑战者
      • 3.两个元素值的交换
  • 总结

前言

在C语言中 用来解决排序问题的常见方法有选择排序和冒泡排序两种

一、选择排序

先上代码:

1.计算素组元素个数

通过 sizeof()计算数组全体元素占空间的大小 再去除以 一个元素占空间的大小 即可得到 元素个数 。

2.选择排序基本逻辑(例子是从大到小排列)

选择排序有些类似于“打擂台”,最强的占有第一个席位,第二强的占有第二个席位 以此类推。
列如
第一次 :例子中的5名选手都会上场打擂台,实力最强的胜出,也就是该数组最大的元素排在第一。
第二次 :最强者不参与他们的擂台赛,剩下4名决出仅次于第一的强者,就就是该数组的第二大元素。
按照次逻辑以此类推 只需要进行(数组元素总数-1场) ,当决出前4强后 最
弱的那一名 自动排到末位。

3.具体实现 1.外层循环: 决定大回合个数 每个大回合决出一个席位
for(i=0;i 
2.内层循环: 决定小回合个数 每个小回合进行1V1大战 实力强的为擂主 直至最后一位挑战者 
for(j=i;j 
3.两个元素值的交换 
if(arr[i] 

从小到大排 只需要改变if中的逻辑即可 如:

    if(arr[i]  if(arr[i]>arr[j+1])
总结

感谢大家的观看 希望该文章能对你有帮助!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/384799.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号