选择排序法
原理:
选择法循环过程与冒泡法一致,它还定义了记号min=i,然后依次把a[min]同后面的元素比较,若a[min]>a[j],则使k=j. 最后看看k=i是否还成立,不成立则交换a[k], a[i],这样就比冒泡法省下许多无用的交换,提高了效率。

void choise (int *a, int n)     /*选择排序函数*/
{int i, j, min, temp;for (i = 0; i <= n; i++){min = i;            //给记号赋值for (j = i+1; j < n; j++){if (a[min] > a[j])min = j;//min总是指向最小元素}if (i != min)   //当min!=i才交换,否则a[i]即为最小{temp = a[i];a[i] = a[min];a[min] = temp;}}
}

附上输出函数和主函数

void print(int *a, int n)
{int i;for (i = 0; i < n; i++)printf ("%5d", a[i]);printf ("\n");
}
int main()
{int a2[] = {13,0,5,8,1,7,21,50,9,2};printf("according to choise:"); choise(a2,10);print(a2, 10);return 0;
}

李洋疯狂C语言之选择排序相关推荐

  1. 选择排序字母串算法c语言,C语言实现选择排序算法

    新人新气象,我又来了,C语言实现选择排序.很基础的东西,原理什么的就不扯了. #include #include #include #define LENGTH 20 const WORD FORE_ ...

  2. c 冒泡排序_C语言中选择排序和冒泡排序

    点击上方"C语言中文社区",选择"设为星标★" 技术干货第一时间送达! 来源:https://blog.csdn.net/zjy18886018024/cate ...

  3. C语言实现选择排序——堆排序(大根堆、小根堆)

    C语言实现堆排序 文章目录 C语言实现堆排序 大根堆排序算法 1.交换操作 2.对结点进行调整为大根堆 3.建立大根堆 4.大根堆排序算法实现 小根堆排序算法 1.交换操作 2.对结点进行调整为小根堆 ...

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

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

  5. C语言的选择排序,你知道原理吗?

    目录 前言 一.源码实例 二.代码原理详解 1.选择排序原理 2.代码分析 前言 前面的冒泡排序讲得有点冗长,废话太多,请堵着门见谅!今天的选择排序尽量精简.但是选择排序有点抽象,我当初学的时候也是搞 ...

  6. C语言之选择排序算法

    C语言学习交流群:648422161.志同道合的小伙伴可以进群交流哦! 对于选择排序,咱们首先理解排序的思想.给定一个数组,这种思想首先假定数组的首元素为最大或者最小的.此时就要利用3个变量表示元素的 ...

  7. 链表排序(C语言)选择排序

    #include <stdio.h> #include <stdlib.h> #include <time.h> //用到了time函数#define arrayS ...

  8. 李洋疯狂C语言之冒泡排序法

    今天的课后任务是2种排序方式(冒泡排序和选择排序) 冒泡排序法1 原理:从a[0]开始,依次将其和后面的元素比较,若a[0]>a[i],则交换他们,一直比较到a[n].同理对a[1], a[2] ...

  9. 【C语言】选择排序从小到大,从大到小,详细注释

    前言 选择排序算法通过选择和交换来实现排序,其排序流程如下: (1)首先从原始数组中选择最小的1个数据,将其和位于第1个位置的数据交换. (2)接着从剩下的n-1个数据中选择次小的1个元素,将其和第2 ...

最新文章

  1. Java学习总结:54(集合输出)
  2. c语言e怎么表示_C语言程序设计(山东联盟)
  3. 在 libevent 中使用 MariaDB(MySQL)
  4. C++100w个数中找出最大的前K个数
  5. golang 获取 磁盘 内存 占用
  6. Oracle中dbms_job包的使用
  7. 【TensorFlow】——合并与分割(stack、concat、split)
  8. python线程创建对象_python 多线程(一)
  9. solution: stuch on 'setting up your MAC'
  10. Yahoo,希望你和微软Bing能过的幸福
  11. redis扫描特定keys脚本,可避免阻塞,不影响线上业务
  12. Java学习笔记——正则表达式
  13. 基于matlab的不规则面积图像测量,基于matlab的不规则面积图像测量.doc
  14. 中美线规线径对照表(详细版)
  15. 极进网络(Extreme Networks )Extreme VDX 6940 交换机光模块配置方案
  16. edger多组差异性分析_用R实现批量差异分析(t检验和方差分析),自己算P值
  17. 小白成为大数据工程师 需掌握哪些知识技能
  18. 海康存储服务器虚拟机,unraid 安装虚拟机攻略
  19. php deel views,视图(views)
  20. python-docx中文文档使用小结

热门文章

  1. java面向对象编程集合边框_JAVA 面向对象 集合框架
  2. plsq卸载 删除注册表、_win10操作系统下oracle11g客户端/服务端的下载安装配置卸载总结...
  3. 基准软件测试原理,基准测试
  4. functions.php 在哪,functions.php常用函数
  5. java中如何生成随机数?
  6. 学习笔记5-C语言-数组
  7. 三羊献瑞c语言编程入门,蓝桥杯-三羊献瑞,
  8. redis——NOSQL及redis概述
  9. linux常用解压和压缩文件的命令
  10. 数学建模3 论文排版注意点