C语言「抄作业」系列之选择排序

#include <stdio.h>
#include <conio.h>#define ARR_LEN 255 /*数组长度上限*/
#define elemType int /*元素类型*//*打印数组*/
/* elemType arr[]: 打印目标数组; int len: 元素个数 */
void printArray (elemType arr[], int len) {int i;for (i=0; i<len; i++)printf ("%d ", arr[i]);putchar ('n');
}/* 选择排序 */
/* 1. 将初始数组分为两段,前段为已排序数组,后段为未排序数组 */
/* 2. 在未排序数组中寻找最值元素,将其放到已排序数组的末尾 */
/* 3. 对所有元素均重复以上步骤,直至最后一个元素 */
/* elemType arr[]: 排序目标数组; int len: 元素个数 */
void selectionSort (elemType arr[], int len) {elemType temp;int i, j, k;for(i=0; i<len-1; i++) { /*外循为排序趟数,len个数进行len-1趟 */k = i; /* 假设当前趟的第一个数为最小值,其下标记在k中(升序为寻找最小值,逆序反之) */for(j=i+1; j<len; j++) /* 从下一个数到最后一个数之间依次判断 */if(arr[j] < arr[k]) /* 若k之后有更小的元素 */k = j; /* 则将其下标记更新至k中 */if(k != i) { /* 若k不为最初的i值,说明在其后找到比其更小的元素 */temp = arr[k];arr[k] = arr[i];arr[i] = temp;} /* 则交换最小值和当前数组第一个元素 */}
}int main (void) {elemType arr[ARR_LEN] = {3,5,1,-7,4,9,-6,8,10,4};int len = 10;printf ("Array: n");printArray (arr, len);putchar ('n');printf ("Sorted by selection sort: n");selectionSort (arr, len);printArray (arr, len);getch (); /*屏幕暂留*/return 0;
}

运行结果


C语言抄作业系列,只有答案,没有讲解!

计算机科学专业毕业多年的一个啥也没学会而转行做了产品经理的家伙,从当年的各种作业里搬运来的一些乱七八糟的东西。

C语言「抄作业」​www.zhihu.com

c语言对n个数选择排序_选择排序_C语言「抄作业」相关推荐

  1. 语言栈十进制转十六进制_十进制数转二进制、八进制、十六进制等任意进制_C语言「抄作业」...

    C语言「抄作业」系列之十进制数转二进制.八进制.十六进制等任意进制 PS: 写这篇时发现了潜藏多年的Bug.在修复时,无意间发现,本大仙当年的Bug代码竟然「流传甚广」--(别以为改了下变量名,就能骗 ...

  2. 机械优化黄金分割法c语言编程,黄金分割法_机械优化设计_C语言程序.doc

    黄金分割法_机械优化设计_C语言程序黄金分割法_机械优化设计_C语言程序 黄金分割法的优化设计 实验报告 学院:机电工程 机制自动化11-03班 学号:541102010326 姓名:刘点点 1,黄金 ...

  3. python链表排序_链表排序+末尾各种排序

    #工具人排序 def nums_sort(data): if not data: return [] min_data = min(data) max_data = max(data) nums =  ...

  4. golang 排序_常用排序算法之冒泡排序

    周末无事,带娃之余看到娃娃在算数,想到了排序-尝试着把几种常用的排序算法跟大家聊一聊,在分析的后面我会用GoLang.PHP和JS三种语言来实现下. 常见的基于选择的排序算法有冒泡排序.插入排序.选择 ...

  5. js数组按中文拼音排序_学习排序算法,结合这个方法太容易理解了

    排序是一个经典的问题,它以一定的顺序对一个数组或列表中的元素进行重新排序.而排序算法也是各有千秋,每个都有自身的优点和局限性.虽然这些算法平常根本就不用自己去编写,但作为一个有追求的程序员,还是要了解 ...

  6. c语言判断一个数是不是质数的n次方,c语言实践 判断一个数是不是素数

    int main() { int input = 0; scanf_s("%d",&input); if (input < 2) { printf("wro ...

  7. python经典排序_经典排序 python实现

    稳定的排序算法:冒泡排序.插入排序.归并排序和基数排序.不是稳定的排序算法:选择排序.快速排序.希尔排序.堆排序. 冒泡 defbobble(arr): length=len(arr)for i in ...

  8. 教师教学质量评价系统c语言,教师课堂教学评价大全_浅谈C语言课堂教学方法

    摘要:编程类课程是计算机系学生普遍感觉较难的学科,课堂气氛往往显得比较沉闷,令学生感觉枯燥无味.为了提高学生的学习兴趣,本文提出"五环节教学法",将学生变为学习的主体,让学生从被动 ...

  9. java二分法排序_二分法排序讲解『附视频』

    二分法排序讲解『附视频』 时间:2017-06-22     来源:华清远见JAVA学院 算法一直是Java编程学习中的重点和难点,今天华清Java学院小编就和大家分享一下Java中的二分法排序. ① ...

  10. 幼儿园语言活动包括哪几类_语段从语言三个方面-幼儿园语言教育的内容包含哪些请从三方面进行回答?幼儿园语言教育的 爱问知识人...

    幼儿园语言教育目标有哪三个层次? 1.幼儿园语言教育的总目标 幼儿园语言教育总目标,是幼儿园语言教育任务要求的总和,即幼儿园三年 语言教育所期望的最终结果, 又叫终期目标.它是幼儿园教育总目标的一个组 ...

最新文章

  1. 对于学习方式的一些思考
  2. EOS能不能囤?一篇文章搞懂EOS优缺点
  3. 链表中倒数第k个节点
  4. netbeans缺少java文件夹_Java,如何在netbeans中添加库文件?
  5. 嵌入式linux开发课程设计,嵌入式Linux开发课程设计指导书
  6. DCMTK:存储服务类提供者(C-STORE操作)
  7. PCA算法中样本方差和协方差的无偏估计与n-1的由来
  8. 禁止chrome浏览器自动填充表单的解决方案
  9. 在Unbuntu 上安装Phalcon
  10. 线性代数复盘 | 同济大学工程数学第六版第三章思维导图笔记——线性方程组的解(复习专用)
  11. 语音领域视频课程及书籍(不定期更新)
  12. 计算机专业的男生喜欢你,男生真心喜欢你的五个表现
  13. 使用Markdown语法介绍markdown
  14. mysql frm的意思_mysqlfrm
  15. 过劳肥算不算工伤?职场人如何避免工作过劳肥?
  16. 如何利用注册表修改开机启动程序并提高电脑开机速度!
  17. 蜜蜂采蜜最短路径c语言算法,S018 蜜蜂采蜜太辛苦了,编程实现还是很容易的
  18. java poi 水印_JAVA不使用POI给Word文档添加水印
  19. C# 7.0 SPANS
  20. Python基础(十二)——循环语句

热门文章

  1. 使用Go构建区块链 第3部分:持久化和cli
  2. 自动化运维 Shell
  3. Tomcat的设计模式
  4. Hi3520d 网卡驱动源码分析
  5. ajax获取信息发送短信,javascript ajax获取信息功能代码
  6. 计算机相关技能简历,简历计算机技能有哪些
  7. sofia-sip帮助文档
  8. linux内核命令行解析
  9. 三种基本排序方法-冒泡排序,选择排序,插入排序
  10. 共轭梯度法(Conjugate gradient)详解