为什么要总结排序算法:

由于时而要用到排序的思想,这里慢慢总结吧,以前也看的不少,但是荒废久了,也就忘得差不多了,这里贴出供需要的人看吧。互联网虽好,但有时候资源良莠不齐,看的也是头疼,不如总结来供自己查阅。

定位:排序是一种重要的,基本的算法。

1、冒泡(起泡)法排序(2018/06/04 pm 17:20):

基本思路:每次将相邻的两个数比较,将小的调到前头。若有6个数:9    8    5    4    2    0;比较过程如下图:

第一趟比较:

9

8

8

8

8

8

8

9

5

5

5

5

5

5

9

4

4

4

4

4

4

9

2

2

2

2

2

2

9

0

0

0

0

0

0

9

第1次

第2次

第3次

第4次

第5次

结果

第1次:先将最前面的两个数(8和9)比较大小,小的浮上去,大的沉下去;

第2次:将第2和第3个数(9和5)比较,同理,小的浮上去,大的沉下去;

如此进行5次,得到8  5  4  2  0  9 的顺序,可以看到最大的数9已经“沉底”。其他数各自向上浮起一个位置。

第二趟:

8

5

5

5

5

5

8

4

4

4

4

4

8

2

2

2

2

2

8

0

0

0

0

0

8

第1次

第2次

第3次

第4次

结果

然后进行第2趟比较,对余下的5个数(8 5 4 2 0)进行新一轮的比较,以便使次大的数“沉底”。

方法同第1趟,如上表示,经过4次比较,得到次大的数8。

规律总结:

按如此规律进行下去,可以推知,对6个数进行冒泡排序,要比较5趟,才能使6个数按大小排序。

在第1趟要进行两个数之间的比较共5次,在第2趟过程中比较4次,..........,在第5趟只需比较1次。

规律升华:

如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。

下面给出简单c程序:

#include

int main()

{

int a[10]; //此数组用于存放输入数据

int i, j; //循环变量

int t; //中间变量

printf("input 10 numbles:\n"); //输入数据提示

for(i = 0; i < 10; i ++)

scanf("%d", &a[i]);

printf("\n");

//冒泡排序部分

for(j = 0; j < 9; j ++) //进行9次循环,实现9趟比较

for(i = 0; i < 9 - j; i ++) //在每一趟中进行 9 - j 次比较

if(a[i] > a[i + 1])

{

t = a[i];

a[i] = a[i + 1];

a[i + 1] = t;

}

printf("the sorted numbers:\n");//排序输出

for(i = 0; i < 10; i ++)

printf("%d ", a[i]);

printf("\n");

return 0;

}

在Code::Blocks中运行结果如下:

input 10 numbles:15 25 12 36 52 21 15 45 52 61

the sorted numbers:

12  15  15  21  25  36  45  52  52  61

持续更新中......

本文同步分享在 博客“李锐博恩”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

c语言实力,排序算法(更新ing)(C语言实现)(认真的不像实力派)相关推荐

  1. C语言八大排序算法,附动图和详细代码解释!

    文章来源:电子工程专辑.C语言与程序设计.竹雨听闲 一.前言 如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功. 想写出精炼.优秀的代码,不通过不断的锤炼,是很难做到的. 二. ...

  2. 硬核!C语言八大排序算法,附动图和详细代码解释!

    来源 :C语言与程序设计.竹雨听闲等 一 前言 如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功. 想写出精炼.优秀的代码,不通过不断的锤炼,是很难做到的. 二 八大排序算法 ...

  3. C语言基础排序算法-选择排序

    C语言基础排序算法-选择排序 什么是选择排序? 选择排序(Selection sort)是一种简单直观的排序算法,第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从 ...

  4. C语言基础排序算法-冒泡排序

    C语言基础排序算法-冒泡排序 什么是冒泡排序? 顾名思义,这种排序方法就像水中的气泡一样,从底逐渐往上冒,一次前进一步.我们来看一个例子,看看到底是怎么冒泡的.假设有一个数组3,2,5,4,1,我们希 ...

  5. 成绩排序的c语言算法,成绩排序系统(练习排序算法和复习C语言)

    成绩排序系统(练习排序算法和复习C语言) 实验一 一.实验目的 1.回顾C语言中的输入.输出及结构体等相关知识点: 2.回顾函数的使用: 3.掌握插入排序.交换排序.选择排序中的常用排序的算法思想: ...

  6. 函数c语言桶排算法,C语言基本排序算法之桶式排序实例

    本文实例讲述了C语言基本排序算法之桶式排序.分享给大家供大家参考,具体如下: 桶式排序是对一个有n个整型元素的数组a[n],其中对任意i,0 <= a[i] <= m的特殊排序算法. 可以 ...

  7. 序列划分c语言,一篇“get”C语言八大排序算法

    如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功. 想写出精炼.优秀的代码,不通过不断的锤炼,是很难做到的. 二.八大排序算法 排序算法作为数据结构的重要部分,系统地学习一下是 ...

  8. C语言 选择排序算法

    C语言 选择排序算法 #include <stdio.h> #include <stdlib.h> //选择排序算法 void selectSort(int *arr,int ...

  9. c语言选择排序法程序设计,C语言选择排序算法及实例代码

    选择排序是排序算法的一种,这里以从小到大排序为例进行讲解. 基本思想及举例说明 选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置:然后,选出第二小的数,放在第二个位置:以此类推,直 ...

最新文章

  1. 图像合成与风格转换实战
  2. 官宣:图灵的 _____ ,只送不卖?
  3. python第三方库有哪些常用的、请列举15个-python基础面试常见题
  4. Delphi下MSMQ(Mircosoft Message Queue)实例(私有队列)
  5. 随便贴两个漏洞,如 Apache JServ协议服务
  6. java更改背景_java – 使用jquery更改menue的背景颜色
  7. 面经 | 我是如何拿到阿里offer的?附面试题+视频
  8. matlab求曲线极值程序,matlab函数求极值matlab函数求极值.ppt
  9. Mysql大小写敏感问题
  10. MATLAB 读取文件及数据
  11. 【ArcGIS操作】1 基础编辑篇
  12. Acer 4750 安装黑苹果_黑苹果 Mac OS 10.14.5 Mojave 安装
  13. 微信HOOK 关于转发消息功能开发的一些开发心得
  14. QT实现植物大战僵尸中文版工具代码
  15. 日暮途远,故吾倒行而逆施之.
  16. 淘淘商城---8.10
  17. Composite UI Application Block (CAB) 详解
  18. HTML简单电子日历的设计与实现
  19. 实践:链表实现控制台通讯录(C++)
  20. 夜里的天空 是蓝色的吗?

热门文章

  1. 毕业一周年,工作一周年零七天
  2. C语言--输入一个日期,输出当前日期是这一年的第几天(完整代码)
  3. C++可变长数组vector的使用
  4. aix如何查看日志策略_aix的日志的一些操作理解
  5. 用遗传算法进行智能排课,相信老师会很喜欢
  6. 带你认识数据库视图对象,下次不要再认成“表”了
  7. 带你掌握4种Python 排序算法
  8. 图神经网络,这到底是个什么?
  9. Demo分享丨看ModelArts与HiLens是如何让车自己跑起来的
  10. 基于区块链的政务平台设计探索