【C语言】选择排序从小到大,从大到小,详细注释
前言
选择排序算法通过选择和交换来实现排序,其排序流程如下:
(1)首先从原始数组中选择最小的1个数据,将其和位于第1个位置的数据交换。
(2)接着从剩下的n-1个数据中选择次小的1个元素,将其和第2个位置的数据交换
(3)然后,这样不断重复,直到最后两个数据完成交换。最后,便完成了对原始数组的从小到大的排序。
假如给定初始数据:(118,101,105,127,112)
一次排序:101,118,105,127,112
二次排序:101,105,118,127,112
三次排序:101,105,112,127,118
四次排序:101,105,112,118,127
程序源码
#include <stdio.h>
int main()
{#define LEN 10int b[LEN];//1,3,2,9,8,7,6,5,4,0int i, j, m, temp;printf("请输入10个整数:");for( i = 0; i < LEN; i++)scanf("%d,", &b[i]);//进行N-1轮选择,即循环LEN-1次互换位置,因为最后一个数据不需要换位置(10个数据,就需要9次即可)for( i = 0; i < LEN-1; i++){m = i; //从剩下的到LEN-1个数据中选择最小数据的下标for( j = i+1; j < LEN; j++) //从剩余数据中不断获取更小的数据if(b[j] < b[m]) //如果还有更小的数据m = j; //获取它的数组下标(位置)if(m != i)//数据不一样才需要互换位置{temp = b[i];b[i] = b[m];b[m] = temp;}}printf("排序结果:");for( j = 0; j < LEN; j++)printf("%d,", b[j]);printf("\n");
}
程序修改说明:程序中的 if(b[j] < b[m]) 即是排序方式,< 即从小到大排序,改成 > 即从大到小排序。
运行结果
【C语言】选择排序从小到大,从大到小,详细注释相关推荐
- c语言选择排序法程序设计,C语言选择排序算法及实例代码
选择排序是排序算法的一种,这里以从小到大排序为例进行讲解. 基本思想及举例说明 选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置:然后,选出第二小的数,放在第二个位置:以此类推,直 ...
- c语言选择排序详解及代码,C语言选择排序算法及实例代码
选择排序是排序算法的一种,这里以从小到大排序为例进行讲解. 基本思想及举例说明 选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置:然后,选出第二小的数,放在第二个位置:以此类推,直 ...
- C语言选择排序(函数版)
C语言选择排序(函数版) 代码 //排序 #include<stdio.h> //数组大小为10,可根据需要自行修改 #define N 10//选择排序函数 void select_so ...
- 函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试
案例描述: 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试 #include <iostream& ...
- C语言选择排序(解析)
C语言选择排序(解析) 运行结果:
- C语言 选择排序算法
C语言 选择排序算法 #include <stdio.h> #include <stdlib.h> //选择排序算法 void selectSort(int *arr,int ...
- c语言选择排序法程序设计,C语言基础之选择排序算法和代码
在利用C语言进行编写程序的过程中,我们会常常通过算法及其代码来进行相关程序的编写工作.今天课课家笔者先给大家介绍C语言算法中的选择排序算法以及代码.那么到底什么是选择排序算法呢?下面由笔者慢慢道来. ...
- 动图图解C语言选择排序算法,含代码分析
C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C ...
- C语言选择排序法(通俗易懂类型)
选择排序法 选择排序法也是c语言一种简单的排序方法,接下来我再用我自己的理解来解析一下易懂原理. 为了通俗易懂,继续给一个小的题目来讲解 就是从终端输入5个数,存进数组,然后我们用从小到大的顺序对这个 ...
最新文章
- Cisco路由器故障诊断技术专题
- mysql查询唯一单词_MySql从表中获取唯一单词列表,其中字段中的值用逗号分隔
- PHP环境服务器搭建
- docker - 在centos7和windows10安装
- deactivate_sending在创建新的table entry时的作用
- Azure App Service 健康检查正式发布
- Atitit 培训之道 attilax著 1. 概念 培训就是及教育	1 1.1. 知识体系化	2 1.2. 组织架构	2 1.3. 人员架构 梯队化培训	2 2. 培训目标,尽可能与项目相关技术点
- WPF开发时光之痕日记本(一)——富文本编辑器
- osm数据下载 python_用Python编写小工具下载OSM路网数据
- 关闭(取消)windows 2003中ie增强的安全配置?
- VSCode 菜单栏不见了,该怎么办
- reboot Linux 命令使用,linux中的reboot命令的详细解释
- c语言去除字符串中字母,C语言经典例题100例——C语言练习实例32解答(在字符串中删除指定字母或字符串)...
- laravel-admin Model does not exists添加模型报错
- Chapter 4 Part 5 WPAS扫描源码走读
- access中dbs和dbms_数据库(DB)、数据库系统(DBS)及数据库管理系统(DBMS)三者之间的关系是( )。...
- filter过滤器设置URL例外
- java捕获唯一约束异常_java – 捕获JPA上唯一约束的原因
- 免费地图下载流量如何领取?
- 群辉(NAS)的虚拟机套件环境下安装window7系统
热门文章
- 【LeetCode】详解环形链表141. Linked List Cycle Given a linked list, determine if it has a cycle in it. To
- 投资理财-简单策略其实不简单
- Golang cron
- oracle数据库中常用语法,oracle数据库常用语法(中文注释版)
- outbox计算机术语,《计算机英语常用词汇》4066(0)
- 锦尚中国 授权文件解密
- java+jsp基于ssm的智慧医疗系统医院挂号就诊系统-计算机毕业设计
- 智能家居软文营销以受众为中心,创作有说服力的文案
- FLAG_ACTIVITY_CLEAR_TOP:
- Bandwidth Part