用一个函数实现用选择法对5个整数按升序排序

2023-11-03

用一个函数实现用选择法对5个整数按升序排序

选择法思想:
先选出5个数中最小的数,把它和score[0]交换,这样a[0]就是5个数中最小的数了;再在剩下4个数(score[1]到score[4])中选出最小的数,把它和score[1]交换,这样ascore1]就是剩下4个数中最小的数了,也就是5个数中第2小的数了,……,如此一轮一轮进行下去,每比较一轮,找出一个未经排序的数中最小的一个并进行交换。共经过4轮的比较和交换,就顺序找出了前4个小的数了,显然最后一个数(score[4])就是最大的数了。

下图表示用选择法对5个数排序的步骤:
score[0] score[1] score[2] score[3] score[4]
4 8 2 6 9 (未排序的情况)
2 8 4 6 9 (第一轮)
2 4 8 6 9 (第二轮)
2 4 6 8 9 (第三轮)
2 4 6 8 9 (第四轮)

#include<stdio.h>
void input(int array[],int n);             //对输入函数的声明
void sort(int array[],int n);                //对sort函数的声明
void output(int array[],int n);            //对输出函数的声明
int main()
{
 int score[5];
 input(score,5);
 sort(score,5);                      //调用sort函数
 output(score,5);
 return 0;
}
void input(int array[],int n)
{
 int i;
 printf("请输入一串数字(5个):\n");
 for(i=0;i<n;i++)
 {
  scanf("%d",&array[i]);
 }
}
void sort(int array[],int n)                 //选择法排序函数
{
 printf("选择法对5个整数升序排序\n");
 int i,j,k,tmp;
 for(i=0;i<n-1;i++)
 {
  k=i;                                            //k用来存放当前"最小"的元素的符号
  for(j=i+1;j<n;j++)                           //将第i个元素与其后元素比较
  {  
   if(array[k]>array[j])                       //如果第j个元素比第k个元素小
    k=j;                                        //把当前最小元素的符号j保存在k中
  }
  tmp=array[k];
  array[k]=array[i];
  array[i]=tmp;
 }
}
void output(int array[],int n)
{
 int i;
 printf("排序后输出的结果是:\n");
 for(i=0;i<n;i++)
 {
  printf("%d",array[i]);
  printf(" ");
 }
  printf("\n");
}

运行结果:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用一个函数实现用选择法对5个整数按升序排序 的相关文章

  • 搭建djangorestframework-(DRF)环境

    今天执行drf实验的时候 碰到一下错误 记录一下 系统环境 Windows 10 64 话不多说 上图 执行数据库迁移的时候 如下报错 解决办法是找到下面文件 将decode改为encode就可以了 执行数据库迁移碰到下面错误 python
  • 大疆没有边界:刚拳打GoPro,又脚踢优必选

    李根 发自 纽凹非寺 量子位 报道 公众号 QbitAI 干一行 干好一行 而且刚一出手就卓尔不凡 配得上这样标准的公司全球都不多 但DJI大疆创新肯定位列名单 刚刚推出的教育机器人产品 也在印证上述判断 挺进教育领域 6月12日 大疆发布
  • 百度2011.10.16校园招聘会笔试题

    百度2011 10 16校园招聘会笔试题 一 算法设计 1 设rand s t 返回 s t 之间的随机小数 利用该函数在一个半径为R的圆内找随机n个点 并给出时间复杂度分析 解 通过求得点的坐标的方法 代码如下 void GetNPoin
  • python逻辑控制

    usr bin python encoding utf8 while循环 Fibonacci series 斐波纳契数列 两个元素的总和确定了下一个数 a b 0 1 while b lt 10 print b a b b a b if判断
  • 全字母句(字符串) SDUT

    全字母句 Time Limit 1000 ms Memory Limit 65536 KiB Problem Description 全字母句 pangram 指包含字母表中全部 26 种英文字母 不区分大小写 的句子 其常被用于展示英文字
  • 该怎么学习区块链技术?

    1 入圈之前 出来学习的第一步是出来 在区块链的世界里面 链上的数据都是资产 所以骗子多 入圈的第一步当然是要保护好自己 建议在正式入圈前 先完整的阅读这个文档 这是安全大牛余弦出品 必属精品 看完这个文档之后 对于常见的概念以及对 Met
  • compilation error错误是什么原因_Java专题讲解——Java错误处理机制

    世界上并不存在不会出错的系统 只要是软件系统就一定会在运行的过程中出现开发人员无法预料的错误 如何处理意外发生就是我们作为一名开发人员所必须深入思考的问题 Java语言提供了完善的异常处理机制 它有效的降低了编写以及维护的门槛 这也是Jav
  • 多数据源dynamic.datasource,SpringBoot+MybatisPlus+PostgreSQL连接数据库

    所需依赖
  • 软件从一个计算机系统转换到另一个,MatrikonOPC常见问答:如何将MatrikonOPC软件许可证从一台计算机转移到另一台计算机?...

    MatrikonOPC常见问答 如何将MatrikonOPC软件许可证从一台计算机转移到另一台计算机 如题 如何将MatrikonOPC软件许可证从一台计算机转移到另一台计算机 许可程序 解决方案 解除许可程序 授权实用程序 我们的大多数软
  • python中anaconda怎么样_python中anaconda有什么用

    python中anaconda有什么用 发布时间 2020 11 16 10 05 49 来源 亿速云 阅读 61 作者 小新 了解python中anaconda有什么用 这个问题可能是我们日常学习或工作经常见到的 希望通过这个问题能让你收
  • 36小时极客嘉年华

    FISCO BCOS是完全开源的联盟区块链底层技术平台 由金融区块链合作联盟 深圳 简称金链盟 成立开源工作组通力打造 开源工作组成员包括博彦科技 华为 深证通 神州数码 四方精创 腾讯 微众银行 亦笔科技和越秀金科等金链盟成员机构 代码仓
  • python之__init__()、__call__()、__str__()、__del()__和__all__,以及pytorch的nn.Module的forward函数在实例化的时候不需要被调用。

    python基础语言之 init call str del 和 all 的用法及讲解 以及为什么pytorch的nn Module的forward函数在实例化的时候不需要被调用 下面的所有内容都来自于这些链接 1 python基础语言之 i
  • 网校搭建7:上架第一门课

    主页设置完了 网校没课程怎么行呢 现在就来添加第一门课 Step1 添加分类 在MeEdu的框架下 每一个课程都是属于一个分类 比如我有六门数学课 分别对应一年级到六年级 但是都属于是数学 那么分类就是数学 路径 视频 分类 添加保存即可
  • 剑指Offer第四十五题:扑克牌顺子

    题目描述 LL今天心情特别好 因为他去买了一副扑克牌 发现里面居然有2个大王 2个小王 一副牌原本是54张 他随机从中抽出了5张牌 想测测自己的手气 看看能不能抽到顺子 如果抽到的话 他决定去买体育彩票 嘿嘿 红心A 黑桃3 小王 大王 方
  • Docker 部署 Seata Server(使用nacos 做为注册中心和配置中心)

    组件版本关系 版本说明 每个 Spring Cloud Alibaba 版本及其自身所适配的各组件对应版本 经过验证 自行搭配各组件版本不保证可用 如下表所示 最新版本用 标记 docker 拉取 seata镜像 seata github地
  • Where is the xm Command in XenServer

    For those of you have used vanilla Xen will know about the xm command and what it does While I ve found in a few places
  • 小黑升级记----记ThinkPad470p加装固态盘

    目录 一 缘起 二 拆机 三 配件选择 四 安装 五 系统迁移 六 总结 一 缘起 本着做开发来用的目的 两年前买了ThinkPad T系列的470P 之所以选择ThinkPad 是因为之前R系列的本 用了接近10年 除了USB插口老化 里
  • vue中多个表单同时校验

    vue中多个表单同时校验 开发过程中 有时候会遇到需要对多个表单进行校验 需要利用Promise的特性进行解决 使用Promise进行一个队列校验 表单校验 submitForm refName string return new Prom
  • Vcenter 6.7添加主机报错解决方法

    出现故障环境为 Vcenter 6 7 40000 Esxi 6 7 update3 14320388 在添加新ESXI主机时进度条在80 报错 出现了常规系统错误 Unable to push CA certificates and CR

随机推荐

  • GD32替代STM32全过程记录

    文章目录 看完就懂 GD32替代STM32全过程记录 一 前言 二 GD32与STM32 什么是GD32 GD32F10x F30x和STM32F10x资源对比 GD32F10x F30x与STM32F10x软硬件设计对比 三 程序下载方法
  • CC2642 数据长度扩展(LE Data Length Extension)

    概要 数据长度扩展 LE Data Length Extension 功能允许LE控制器在连接状态下发送具有高达251字节的PDU 在连接期间的任何时刻 主从设备可以协商该PDU大小 这个和MTU不同 MTU是应用层的数据传输长度 这个是链
  • 安装centos与动态磁盘

    在动态磁盘压缩磁盘后 Linux是检测不到压缩后的磁盘空闲空间 需要用分区助手将动态磁盘变为基本磁盘
  • 【MES】工业4.0之MES系统方案

    人类自从250年前发生在英国的第一次工业革命开始 我们共经历了工业1 0 机械化 工业2 0 电气化自动化 工业3 0 信息化 之后迎来了工业4 0网络化 从工业革命的定义来看 仅仅是生产力的提升 那还只是量变 不能称为工业革命 必须有生产
  • CodeCounter

    package cn zzsxt io2 import java io BufferedReader import java io File import java io FileReader import java io IOExcept
  • 老猿学5G扫盲贴:3GPP中的5G计费架构

    专栏 Python基础教程目录 专栏 使用PyQt开发图形界面Python应用 专栏 PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一 计费逻辑架构和信息流 在32240子系列文档内定义了计费的逻辑架构和信息流 如图 上图
  • 使用HttpClient为GET/POST请求获取数据 -- 信任证书 SS连接

    使用HttpClient为GET POST请求获取数据 信任证书 SS连接 依赖部分 使用GET请求获取数据 使用POST 请求 Form 表单格式请求获取数据 使用POST 请求 Body 格式请求获取数据 公共部分 执行http请求 信
  • random 与 range

    random方法 random randint 1 5 会生成一个1 5之间的任一个整数 包括1和5 random random 会随机生成0 1的浮点数 random choice list 会从list中随机选出一个值 range方法
  • 使用Edge调试 安卓app应用或插件

    Edge调试 安卓手机 1 1 找到开发者模式 打开 USB 调试 1 2 找条数据线连上电脑 PC 打开 edge 2 1 打开 URL edge inspect devices 2 2 等待手机和 edge 响应 然后出现页面后 点击
  • SQL练习

    学生选课表的50个SQL语句 1 查询001课程比002课程成绩高的所有学生的学号 select a s id from select s id score from sc where c id 001 a select s id scor
  • python自动化办公(三十二)pyinstaller.exe打包成exe程序,运行后ModuleNotFoundError或FileNoFounderError:no such file or **

    目录 一 打包Tkinter 二 下载pyinstaller 三 pycharm终端运行pyinstaller 四 pyinstaller exe直接运行Cmd命令打包
  • Docker中web项目的部署以及访问

    1 将应用打包成demo war 2 编写Dockerfile 构建镜像 Dockerfile FROM 包含tomcat的基础镜像 COPY demo war usr local tomcat webapps COPY apple app
  • 八皇后[n皇后]问题 python 算法的理解

    八皇后 n皇后 问题表述为 在8 8格的国际象棋上摆放8个皇后 使其不能互相攻击 即任意两个皇后都不能处于同一行 同一列或同一斜线上 问有多少种摆法 答案是92种 可以看看遍历过程 方便理解 对于递归queen A cur 1 的理解 cu
  • vue根据路由隐藏侧边栏

    项目要求某模块显示侧边栏 某模块隐藏侧边栏 所有模块统一引用了一个layout组件 所以在路由里设置一个自定义属性 在layout组件里监听路由 判断自定义属性值来隐藏侧边栏 An highlighted block path equipm
  • macos配置vscode支持c++11/17标准

    目录 简介 需求 步骤 步骤1 步骤2 步骤3 步骤4 步骤5 结语 简介 Hello 非常感谢您阅读海轰的文章 倘若文中有错误的地方 欢迎您指出 昵称 海轰 标签 程序猿 C 选手 学生 简介 因C语言结识编程 随后转入计算机专业 获得过
  • Looper和Handler

    Looper用于在android线程中进行消息处理 默认情况下 一个线程并不和任何Looper绑定 当我们调用Looper prepare 时 如果当前线程还没有和任何Looper绑定 那么将创建一个Looper让它和当前线程绑定 当我们调
  • Mysql数据库简单配置

    1 将安装包下载到本地文件路径 按照自己的情况 2 配置ini文件 放在mysql安装目录 没有文件名 解决方法 3 终端切换目录到安装目录下的bin目录下 建议配置环境变量 后面直接通过命令开启服务 直接双击path也可以进入 然后点击新
  • module “**.vue“ has not default

    module vue has not default 这个问题造成的原因是因为你在vue config js中设置了happyPackMode选项 如下所示 config module rule ts use ts loader loade
  • 初识注解

    注解的英文单词 Annotation 3 有一个public修饰的 入口 4 且该public修饰的类名必须与文件名相同 5 并且一个源文件可以只有非public类 package com kuang Annotation 测试元注解 im
  • 用一个函数实现用选择法对5个整数按升序排序

    用一个函数实现用选择法对5个整数按升序排序 选择法思想 先选出5个数中最小的数 把它和score 0 交换 这样a 0 就是5个数中最小的数了 再在剩下4个数 score 1 到score 4 中选出最小的数 把它和score 1 交换 这