选择排序:

每轮通过比较找出最值数字角标,明确后将目的位置(最前/后递值变化)角标进行对调。因此每轮内层循环中所有数字只进行一次两两交换。

  • 比较环节中直接带入num与num[j]比较不妥当,应为num[m]与num[j]比较。原因:每轮内层循环中i是具体的初始化变量,不会再发生改变。而m会随着则比较的变化而变化,更具有灵活性。
  • 顺序问题:将视具体情况而定,与下标以及排列顺序有关。

起泡排序:

每轮将两两数字进行比较,如果不满足条件则进行交换。因此每轮内层循环要交换m-i次。

1.1(选择排序-从后往前依次找出最大角标)

for (i = N - 1; i >= 0; i--){m = i;for (j = i - 1; j >= 0; j--){if (num[m] < num[j]){m = j;}}if (m != i){temp = num[i];num[i] = num[m];num[m] = temp;}}

1.2(选择排序-从前往后依次找出最小角标)

for (i =0; i < N; i++){m = i;for (j = i+1; j < N; j++){if (num[m] > num[j]){m = j;}}if (m != i){temp = num[i];num[i] = num[m];num[m] = temp;}}

1.3(选择排序-相向而行比较,固定最小放最前,从后往前找)

 for (i =0; i < N; i++){m = i;for (j = N-1; j >i; j--){if (num[m] > num[j]){m = j;}}if (m != i){temp = num[i];num[i] = num[m];num[m] = temp;}}

1.4(选择排序-相向而行比较,固定最小放最前,从后往前找)

for (i =0; i < N; i){m = i;for (j = i - 1; j >= 0; j--){if (num[m] < num[j]){m = j;}}if (m != i){temp = num[i];num[i] = num[m];num[m] = temp;}}

2.1(起泡排序)

for (i =0; i < N; i++){for (j = 0; j < N; j++){if (num[j] > num[j + 1]){temp = num[j + 1];num[j + 1] = num[j];num[j] = temp;}}} 

【C语言排序问题】|区分选择排序以及起泡排序相关推荐

  1. java冒泡排序算法代码降序_冒泡排序(起泡排序)算法及其C语言实现

    起泡排序,别名"冒泡排序",该算法的核心思想是将无序表中的所有记录,通过两两比较关键字,得出升序序列或者降序序列. 例如,对无序表{49,38,65,97,76,13,27,49} ...

  2. C语言Selection Sort选择排序的算法(附完整源码)

    C语言Selection Sort选择排序的算法 C语言Selection Sort选择排序的算法完整源码(定义,实现) C语言Selection Sort选择排序的算法完整源码(定义,实现) #if ...

  3. C语言排序(桶排序,冒泡排序,选择排序,插入排序,快速排序)

    参考:C语言五大排序(桶排序,冒泡排序,选择排序,插入排序,快速排序)动态演示 作者:一只青木呀 发布时间: 2020-09-09 20:18:43 网址:https://blog.csdn.net/ ...

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

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

  5. C语言冒泡法和选择排序法

    C语言冒泡法和选择排序法 1.冒泡法代码 #include<stdio.h> int main() {int a[3];int p,i,tmp;for(i=0;i<3;i++)sca ...

  6. 【项目】C语言实现对英文文本按字典顺序排序(1~100万+个单词,多种排序算法选择)

    目录 介绍 算法代码与exe程序 基本功能 完整功能 函数总览 运行实例(10万个单词的英文文本排序) 参考文献 介绍 对含有多个单词的英文文本,选择多个排序算法,将所有单词按字典顺序排序,并实时显示 ...

  7. 对以下6种常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。

    题目要求: (1)对以下6种常用的内部排序算法进行比较:起泡排序.直接插入排序.简单选择排序.快速排序.希尔排序.堆排序. (2)待排序表的表长不小于100:其中的数据要用伪随机数产生程序产生:至少要 ...

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

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

  9. C语言数组的五种简单排序,选择法排序,冒泡法排序、交换法排序、插入法排序、折半法排序

    文章目录 1.选择法排序 2.冒泡法排序 3.交换法排序 4.插入排序 5.折半法排序 6.五种方法比较 1.选择法排序 选择法排序是指每次选择索要排序的数组中的最小值(这里是由小到大排序,如果是由大 ...

最新文章

  1. android碎片调用动态碎片,Android Training - 使用碎片创建一个动态UI
  2. javascript简介及基本语法
  3. 学习Berkeley DB- 入门
  4. 软件定义存储的定制化怎么走?
  5. 在asp.net core中使用的验证框架FluentValidation
  6. Java学习的5个阶段,助大家步步攀升
  7. 期待鸿蒙是什么意思,如何看待华为将于 6月2 日举办鸿蒙发布会?你对此有哪些期待?...
  8. JAVA蓝桥杯: 01字串
  9. Json字符串转对象和转List集合操作(alibabab版本)
  10. el-upload进度条无效,on-progress无效问题解决方案
  11. [转]asp.net webform 与mvc 共享session
  12. WEB端后台常用Axure元件库及框架模版
  13. 【工控老马】三菱Q系列PLC调试及三菱触摸屏报警使用说明详解
  14. 最大的商业价值来自给人自由--------------解放生产力与互联网用户分析之我见
  15. 深入浅出网络编程TCP,UDP,Socket,Http网络编程面试题
  16. netty系列之:请netty再爱UDT一次
  17. 批量提取文件名(JPG照片等)
  18. excel 表格身份证校验和手机号校验 公式
  19. 60秒链快讯 | 我国区块链专利数量达1065件 位居全球第一;V神发表区块链方向开发功能侧重点的看法
  20. 银河麒麟Kylin_s10_sp2安装Oracle11g(FS)(亲测有效)

热门文章

  1. 服务外包的类别和适用范围
  2. 呆滞物料都是泪,企业该如何避免难题?
  3. Cesium平面投影坐标系加载
  4. Spring打印sql语句,MybatisLog小黑鸟无法打印sql的解决
  5. 近期准备秋招的一些体会(二)
  6. 《O2O:移动互联网时代的商业革命》读书笔记
  7. python 简单获取手柄摇杆输入
  8. 免费180天的Ashampoo Anti-Virus 2014
  9. 雷达信号处理脉冲压缩算法GPU实现及加速(含完整代码)
  10. (二十)自行制作函数