C语言中的选择排序

C语言中的选择排序文章目录前言一、选择排序1.计算素组元素个数2.选择排序基本逻辑(例子是从大到小排列)3.具体实现1.外层循环:决定大回合个数每个大回合决出一个席位2.内层循环:决定小回合个数每个小回合进行1V1大战实力强的为擂主直至最后一位挑战者3.两个元素值的交换总结前言在C语言中用来解决排序问题的常见方法有选择排序和冒泡排序两种一、选择排序先上代码:1.计算素组元素个数通过sizeof()计算数组全体元素占空间的大小再去除以一个元素占空间的大小即可得到元素个数。2.选择排序基本

大家好,又见面了,我是你们的朋友全栈君。

前言

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

一、选择排序

先上代码:在这里插入图片描述

1.计算素组元素个数

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

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

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

3.具体实现

1.外层循环: 决定大回合个数 每个大回合决出一个席位

for(i=0;i<siezof(arr)/sizeof(arr[0])-1;i++)//前4位排好最后一位自动排好 

2.内层循环: 决定小回合个数 每个小回合进行1V1大战 实力强的为擂主 直至最后一位挑战者

for(j=i;j<sizeof(arr)/sizeof(arr[0])-1;j++)

3.两个元素值的交换

if(arr[i]<arr[j+1])
{ 
   
 int tmp = arr[i];
 arr[i] = arr[j+1];
 arr[j+1]=tmp;// 通过该方法即可进行两个变量值得交换
}

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

    if(arr[i]<arr[j+1])   -->  if(arr[i]>arr[j+1])

总结

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153001.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月25日 上午10:16
下一篇 2022年6月25日 上午10:16


相关推荐

  • SSM-Spring(1)「建议收藏」

    SSM-Spring(1)「建议收藏」SpringSpring是一个开源的免费的框架Spring是一个轻量级的,非入侵式的框架控制反转(IOC),面向切面编程(AOP)支持事务的处理,对框架整合的支持IOC理论UserDaoUserDaoImpUserSeviceUserServiceImp在之前,用户的需求可能会影响原来的代码。使用一个set。public void setUserDao(UserDao userDao){ this.userDao = userDao;}之前是主动创建对象,控制

    2022年8月9日
    6
  • linux rsyslogd cpu占用率高问题「建议收藏」

    linux rsyslogd cpu占用率高问题「建议收藏」最近有几次,linuxcentos7服务停了后,重启,再起一些应用后,查看top后,rsyslogdcpu占用率高问题,先说我这块怀疑导致的原因吧。原因很有可能是当前机器的系统盘挂载出现问题,或者系统盘有磁道坏了,导致,在启动某个软件时,一直在记录日志。现象top命令看下一:解决发现rsyslog可以理解为增强版的syslog,可以支持输出日志到各种数据库,使用RELP+TCP实现数据的传输,对目前的服务器服务而言,可以关闭该进程。#第一步:重启rsyslog服务,

    2022年8月15日
    16
  • Java:class6 继承

    Java:class6 继承1 extends 继承 避免了代码的重复 默认 继承 Object 其中 Student 是子类 People 是父类或基类 2 若父类的属性方法定义成了 private 子类虽然继承了 但却没有访问权限 3 super 用于调用父类的构造函数 让父亲去初始化 4 this 与 super this 成员变量 this 指向当前对象 this 成员方法 this 调用当前类中其他的无

    2026年3月17日
    2
  • SpringBoot 整合WebSocket 简单实战案例[通俗易懂]

    SpringBoot 整合WebSocket 简单实战案例[通俗易懂]先看项目目录结构:——接下来,我们开始整合WebSocket——先是pom.xml添加依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket&lt…

    2022年7月11日
    23
  • TerminateThread的缺点

    TerminateThread的缺点1 TerminateThr 是个异步运行函数 执行后不能保证线程马上就结束 2 TerminateThr 在 c 里面可能会造成资源泄露 比如 include includeusing classfoo public foo cout foo endl foo cout

    2026年3月18日
    2
  • 坚持做最好的财经直播报道,给百姓最真的财经动态。

    坚持做最好的财经直播报道,给百姓最真的财经动态。

    2026年3月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号