1、选择法排序简介

选择法排序算法是一种常用的排序算法,他的实现方法是遍历数组所有元素,找出最小的元素,将它与第一个元素交换;然后遍历剩下的元素,找出最小的元素并与第二个元素交换;接下来再遍历剩下的元素,找出最小的元素并与第三个元素交换;如此反复,知道数组末尾。

比如一个5个元素的数组5、3、1、2、4,使用选择法进行排序,排序步骤如下所示。

2、选择法代码示例

下面我们采用c语言编写一段代码来实现上面的5个数的排序,代码如下所示。

#include <stdio.h>void main()
{int i,j;int data[5]={5,3,1,2,4};int temp;int min;printf("Data: ");for(i=0;i<5;i++)printf("%d ",data[i]);printf("\n");for(i=0;i<5;i++){min = i;     for(j=i+1;j<5;j++){          if(data[j]<data[min]){min=j;}}temp = data[i];data[i] = data[min];data[min] = temp;}printf("Final data: ");for(i=0;i<5;i++)printf("%d ",data[i]);printf("\n");}

编译代码并运行,结果如下所示。

Data: 5 3 1 2 4
Final data: 1 2 3 4 5 

排序算法(二)—— 选择法排序算法相关推荐

  1. 排序算法之选择法排序(Java)

    选择排序    时间复杂度  O(n*n)  不稳定的排序算法 思想是:每一趟从待排序的数据元素中选出最小的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完. 下面是关键部分代码: ...

  2. 排序算法之选择法排序(C/C++)

    简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换:第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换:以此类推,第i趟在待排序 ...

  3. c语言求数组最大值最小值泡沫法,C语言选择法排序

    #include int main() { int i, j, p, n, q; int a[] = {, , , , }; //对无序数组进行排序 for(i=; i { p = i; for(j= ...

  4. c语言折半查找法_C语言学习|选择法排序及折半查找法查找

    数组名作为函数参数示意图 交换法排序,读者只要仔细研究一下这个算法就不难发现,其排序效率较低.因为在第i轮(i=0,1,2--,n-2)比较中,第i+1个数和后面所有的数都要进行一次比较,每进行一次比 ...

  5. 冒泡法和选择法 排序算法实现

    @冒泡法和选择法 排序算法实现 void swap(int& a, int& b) {int temp=0;temp = a;a = b;b = temp; }void bubble_ ...

  6. 一年后再回头看系列之C/C++中的选择法排序、冒泡排序

    文章目录 前言 一.两种排序算法的基本思想 二.具体步骤 1.引入库 2.生成随机数 三.具体代码 前言 转眼大二了,突然感觉比大一还要迷茫(也可能是因为数模竞赛,评优都没有搞好,明年暑假的智能车也一 ...

  7. PTA c语言 选择法排序过程

    本题要求使用选择法排序,将给定的n个整数从小到大排序后输出,并输出排序过程中每一步的中间结果. 选择排序的算法步骤如下: 第0步:在未排序的n个数(a[0]〜 a[n−1])中找到最小数,将它与 a[ ...

  8. 微课|中学生可以这样学Python(例8.21):选择法排序

    适用教材: 董付国,应根球.<中学生可以这样学Python>.清华大学出版社,2017. 第8章  常用算法的Python实现 例8.21  选择法排序 京东购买链接:https://it ...

  9. 计算机中用函数排序,编写一个sort()函数,实现选择法排序,在主函数中输入10个整数,主函数调用sort()函数实现排序后将数据输出。...

    编写一个sort()函数,实现选择法排序,在主函数中输入10个整数,主函数调用sort()函数实现排序后将数据输出. 重赏重赏 更新时间:2019-05-06 04:06 最满意答案 #include ...

最新文章

  1. 从PyTorch到ONNX的端到端AlexNet
  2. 一种清除windows通知区域“僵尸”图标的方案——Windows7系统解决方案
  3. Ajax 中XmlHttp 乱码 的解决方法 (UTF8,GB2312 编码 解码)
  4. String 对象内存分配策略
  5. table ADR6 引起的equipment download error
  6. c语言之判断电压最大值最小值,基于单片机的频率计的C语言源代码
  7. 织梦php远程连接数据库,用PHP连接Oracle for NT 远程数据库
  8. “平行驾驶”是无人车上路的安全高效智能途径!
  9. 36岁,程序员,为公司工作8年,昨天HR说公司不准备续约
  10. 怒江java培训班_怒江万词霸屏是什么意思
  11. C++实用编程——随机生成迷宫算法
  12. spnc币吧_CCIEC币-目前是CPUsolo独自开采。CPU服务器独自开采钱包上挖新币教程!...
  13. LNMP搭建HDwiki
  14. VMware vCenter Server 7.0安装配置
  15. 解决redis缓存穿透、redis缓存雪崩问题
  16. 仿真软件算法(MOM/FDTD/FEM/BEM/FDID)
  17. TI公司DSP集成开发环境(CCS)有哪几种工作模式?各自特点是什么?
  18. 双因素认证(2FA)
  19. Office Word 孤行控制
  20. ROHM 的 SiC 技术助力赛米控的 EMPack

热门文章

  1. 常说的代码整洁到底是什么?
  2. GRUB主题下载与设置
  3. ecshop 属性自动组合_平面库组合库位的应用(精典)
  4. 什么是Web3D?Web3D技术发展历程以及Web3D应用场景
  5. android 手机存储空间 进度条,Android 进度条
  6. NetworkX的基本用法
  7. linux mrtg 安装,mrtg-linux安装步骤
  8. Solrj demo
  9. Android图片加载框架比较
  10. 天草VIP_逆向分析视频教程(无KEY高清版)[2014年重新整理可在线播放版]