选择排序思想:若按照递增顺序对顺序表进行排列,在n个元素的顺序表中,从第i(i=1)个元素开始遍历到第n-1个元素,在遍历过程中都将第i个元素依次与第i+1到第n个元素进行比较,确定最小的元素,如果最小的元素不是第i个元素则将其与最小的元素进行交换。

代码如下:

#include<stdio.h>
void select_sort(int a[],int n){int i,j,min,temp=0;     //变量i,j用来遍历数组,min用来标记最小值的位置,temp用于交换两个变量的值 for(i=0;i<n-1;i++){  //从第1个元素开始遍历到第n-1个元素 min=i;    //每一轮遍历都先将i的值赋给min,默认a[i]是最小元素for(j=i+1;j<n;j++){     //从第i+1开始遍历,并逐一与a[i]进行比较 if(a[min]>a[j])        //若a[min]>a[j]则将j的值赋给min,用来记录当前最小元素的位置 min=j;}if(min!=i){           //当a[i]与待比较的元素比较完后,若min的位置与i不一致temp=a[i];       //那么就将最小的元素a[min]与a[i]进行交换a[i]=a[min];a[min]=temp;}}
}
int main(){int a[]={6,2,1,3,4,5};      //初始化数组 int len=sizeof(a)/sizeof(a[0]);        //用变量len接收数组长度计算出来 printf("排序前的数组:\n");for(int i=0;i<len;i++)       //遍历排序前的数组 printf("%d ",a[i]);printf("\n"); select_sort(a,len);         //使用选择排序算法 printf("排序后的数组:\n");for(int i=0;i<len;i++)       //遍历排序后的数组 printf("%d ",a[i]);return 0;
}

运行结果:

简单选择排序——C语言实现相关推荐

  1. 简单选择排序(C语言)

    数据结构总目录 简单选择排序 1. 图文解析 遍历序列,每次在当前位置向后扫描序列,记下最小值的位置,然后将最小值与当前位置的值交换 排序过程 序列:{ 5, 4, 3, 2, 1 } 从小到大排列 ...

  2. 数据结构-简单选择排序(C语言)

    文章目录 1.基本思想: 2.例子讲解: 3.代码实例C语言: 4.时间复杂度分析 1.基本思想: 第i趟排序开始时,当前有序区和无序区分别为R[0-i-1],R[i-n-1] (0<=i< ...

  3. c语言用sort函数选择排序,简单选择排序(Simple Selection Sort)的C语言实现

    简单选择排序(Simple Selection Sort)的核心思想是每次选择无序序列最小的数放在有序序列最后 演示实例: C语言实现(编译器Dev-c++5.4.0,源代码后缀.cpp) 原创文章, ...

  4. C语言实现选择排序——简单选择排序算法

    C语言实现简单选择排序 文章目录 C语言实现简单选择排序 简单选择排序算法 1.交换操作 2.简单选择排序算法实现 项目完整代码 运行效果图 简单选择排序算法 1.交换操作 //交换实现 void s ...

  5. C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】

    目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...

  6. C语言例题11:简单选择排序

    [c语言例题总结] 问题描述 简单选择排序 代码 #include<iostream> #include<cstdlib> #include<algorithm> ...

  7. 【排序算法】简单选择排序及实例_C语言代码实现_Python代码实现

    博客对您有所帮助的话,欢迎给个赞啦,你的鼓励是对我最大的支持! 有不足之处也请您评论指教 简单选择排序 简单选择排序是选择排序的一种. 问:那么什么是选择排序? 答:每趟从待排序的记录中选出关键字最小 ...

  8. python选择排序算法图解_简单选择排序算法(C语言详解版)

    该算法的实现思想为:对于具有 n 个记录的无序表遍历 n-1 次,第 i 次从无序表中第 i 个记录开始,找出后序关键字中最小的记录,然后放置在第 i 的位置上. 例如对无序表{56,12,80,91 ...

  9. C语言实现各个排序算法(直接插入排序,折半插入排序,希尔排序,冒泡排序,简单选择排序)

    数据结构开发总结报告 --内部排序综合设计程序的编程实现 #include<stdio.h> #define MaxSize 20 #include<windows.h> ty ...

最新文章

  1. python编程入门经典教程-2020年5个经典python编程入门视频教程推荐学习
  2. 最简容器化动手小实践——再战flappybird
  3. LATEX 用法个人记录
  4. 3376: [Usaco2004 Open]Cube Stacking 方块游戏(带权并查集)
  5. 浅谈SQL Server中的快照
  6. GRBL学习笔记1--Qt4安装
  7. Win32 Application和Win32 Console Application区别
  8. Error: Cannot find module 'util-deprecate'
  9. python画多边形(八边形)
  10. CVPR 2020——OccuSeg: Occupancy-aware 3D Instance Segmentation
  11. 理解jquery的$.extend()、$.fn和$.fn.extend()
  12. 面试最后总会问到的开放性面试题
  13. python的图形用户界面
  14. Science: 重新“野化“ 植物微生物组
  15. OSChina 周六乱弹 ——清明节你怎么过的这么开心?
  16. 程序人生 - 狗狗会“嫉妒”吗?
  17. 基于STM32的esp8266WIFI自动校时+语音报时可调时钟(附源代码)
  18. 小程序直播,助力教育机构获客
  19. 零基础怎么学习学单片机?单片机软件编程培训
  20. 深度学习入门——深度学习基础概念思维导图

热门文章

  1. linux xargs cp,Linux xargs命令的使用
  2. python接口自动化测试书籍_Web接口开发与自动化测试——基于Python语言
  3. 互联网巨头区块链,360区块猫怎么领取?区块猫上线时间?
  4. python------异步IO\数据库\队列\缓存
  5. UA287Q蓝牙模组,UA800 Wi-Fi模组助力扫地机器人方案,为传统电器插上“智能”翅膀
  6. 随机生成100个卡号题目
  7. 关于ffmpeg合成音视频报错的解决办法
  8. 【算法导论】三门问题-蒙提霍尔问题
  9. 计算机发展程序诞生相关
  10. 经典Z字形编排问题的详细解读