前言

选择排序算法通过选择和交换来实现排序,其排序流程如下:

(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语言】选择排序从小到大,从大到小,详细注释相关推荐

  1. c语言选择排序法程序设计,C语言选择排序算法及实例代码

    选择排序是排序算法的一种,这里以从小到大排序为例进行讲解. 基本思想及举例说明 选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置:然后,选出第二小的数,放在第二个位置:以此类推,直 ...

  2. c语言选择排序详解及代码,C语言选择排序算法及实例代码

    选择排序是排序算法的一种,这里以从小到大排序为例进行讲解. 基本思想及举例说明 选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置:然后,选出第二小的数,放在第二个位置:以此类推,直 ...

  3. C语言选择排序(函数版)

    C语言选择排序(函数版) 代码 //排序 #include<stdio.h> //数组大小为10,可根据需要自行修改 #define N 10//选择排序函数 void select_so ...

  4. 函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试

    案例描述: 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试 #include <iostream& ...

  5. C语言选择排序(解析)

    C语言选择排序(解析) 运行结果:

  6. C语言 选择排序算法

    C语言 选择排序算法 #include <stdio.h> #include <stdlib.h> //选择排序算法 void selectSort(int *arr,int ...

  7. c语言选择排序法程序设计,C语言基础之选择排序算法和代码

    在利用C语言进行编写程序的过程中,我们会常常通过算法及其代码来进行相关程序的编写工作.今天课课家笔者先给大家介绍C语言算法中的选择排序算法以及代码.那么到底什么是选择排序算法呢?下面由笔者慢慢道来. ...

  8. 动图图解C语言选择排序算法,含代码分析

    C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C ...

  9. C语言选择排序法(通俗易懂类型)

    选择排序法 选择排序法也是c语言一种简单的排序方法,接下来我再用我自己的理解来解析一下易懂原理. 为了通俗易懂,继续给一个小的题目来讲解 就是从终端输入5个数,存进数组,然后我们用从小到大的顺序对这个 ...

最新文章

  1. Cisco路由器故障诊断技术专题
  2. mysql查询唯一单词_MySql从表中获取唯一单词列表,其中字段中的值用逗号分隔
  3. PHP环境服务器搭建
  4. docker - 在centos7和windows10安装
  5. deactivate_sending在创建新的table entry时的作用
  6. Azure App Service 健康检查正式发布
  7. Atitit 培训之道 attilax著 1. 概念 培训就是及教育 1 1.1. 知识体系化 2 1.2. 组织架构 2 1.3. 人员架构 梯队化培训 2 2. 培训目标,尽可能与项目相关技术点
  8. WPF开发时光之痕日记本(一)——富文本编辑器
  9. osm数据下载 python_用Python编写小工具下载OSM路网数据
  10. 关闭(取消)windows 2003中ie增强的安全配置?
  11. VSCode 菜单栏不见了,该怎么办
  12. reboot Linux 命令使用,linux中的reboot命令的详细解释
  13. c语言去除字符串中字母,C语言经典例题100例——C语言练习实例32解答(在字符串中删除指定字母或字符串)...
  14. laravel-admin Model does not exists添加模型报错
  15. Chapter 4 Part 5 WPAS扫描源码走读
  16. access中dbs和dbms_数据库(DB)、数据库系统(DBS)及数据库管理系统(DBMS)三者之间的关系是( )。...
  17. filter过滤器设置URL例外
  18. java捕获唯一约束异常_java – 捕获JPA上唯一约束的原因
  19. 免费地图下载流量如何领取?
  20. 群辉(NAS)的虚拟机套件环境下安装window7系统

热门文章

  1. 【LeetCode】详解环形链表141. Linked List Cycle Given a linked list, determine if it has a cycle in it. To
  2. 投资理财-简单策略其实不简单
  3. Golang cron
  4. oracle数据库中常用语法,oracle数据库常用语法(中文注释版)
  5. outbox计算机术语,《计算机英语常用词汇》4066(0)
  6. 锦尚中国 授权文件解密
  7. java+jsp基于ssm的智慧医疗系统医院挂号就诊系统-计算机毕业设计
  8. 智能家居软文营销以受众为中心,创作有说服力的文案
  9. FLAG_ACTIVITY_CLEAR_TOP:
  10. Bandwidth Part