c语言实力,排序算法(更新ing)(C语言实现)(认真的不像实力派)
为什么要总结排序算法:
由于时而要用到排序的思想,这里慢慢总结吧,以前也看的不少,但是荒废久了,也就忘得差不多了,这里贴出供需要的人看吧。互联网虽好,但有时候资源良莠不齐,看的也是头疼,不如总结来供自己查阅。
定位:排序是一种重要的,基本的算法。
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语言实现)(认真的不像实力派)相关推荐
- C语言八大排序算法,附动图和详细代码解释!
文章来源:电子工程专辑.C语言与程序设计.竹雨听闲 一.前言 如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功. 想写出精炼.优秀的代码,不通过不断的锤炼,是很难做到的. 二. ...
- 硬核!C语言八大排序算法,附动图和详细代码解释!
来源 :C语言与程序设计.竹雨听闲等 一 前言 如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功. 想写出精炼.优秀的代码,不通过不断的锤炼,是很难做到的. 二 八大排序算法 ...
- C语言基础排序算法-选择排序
C语言基础排序算法-选择排序 什么是选择排序? 选择排序(Selection sort)是一种简单直观的排序算法,第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从 ...
- C语言基础排序算法-冒泡排序
C语言基础排序算法-冒泡排序 什么是冒泡排序? 顾名思义,这种排序方法就像水中的气泡一样,从底逐渐往上冒,一次前进一步.我们来看一个例子,看看到底是怎么冒泡的.假设有一个数组3,2,5,4,1,我们希 ...
- 成绩排序的c语言算法,成绩排序系统(练习排序算法和复习C语言)
成绩排序系统(练习排序算法和复习C语言) 实验一 一.实验目的 1.回顾C语言中的输入.输出及结构体等相关知识点: 2.回顾函数的使用: 3.掌握插入排序.交换排序.选择排序中的常用排序的算法思想: ...
- 函数c语言桶排算法,C语言基本排序算法之桶式排序实例
本文实例讲述了C语言基本排序算法之桶式排序.分享给大家供大家参考,具体如下: 桶式排序是对一个有n个整型元素的数组a[n],其中对任意i,0 <= a[i] <= m的特殊排序算法. 可以 ...
- 序列划分c语言,一篇“get”C语言八大排序算法
如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功. 想写出精炼.优秀的代码,不通过不断的锤炼,是很难做到的. 二.八大排序算法 排序算法作为数据结构的重要部分,系统地学习一下是 ...
- C语言 选择排序算法
C语言 选择排序算法 #include <stdio.h> #include <stdlib.h> //选择排序算法 void selectSort(int *arr,int ...
- c语言选择排序法程序设计,C语言选择排序算法及实例代码
选择排序是排序算法的一种,这里以从小到大排序为例进行讲解. 基本思想及举例说明 选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置:然后,选出第二小的数,放在第二个位置:以此类推,直 ...
最新文章
- 图像合成与风格转换实战
- 官宣:图灵的 _____ ,只送不卖?
- python第三方库有哪些常用的、请列举15个-python基础面试常见题
- Delphi下MSMQ(Mircosoft Message Queue)实例(私有队列)
- 随便贴两个漏洞,如 Apache JServ协议服务
- java更改背景_java – 使用jquery更改menue的背景颜色
- 面经 | 我是如何拿到阿里offer的?附面试题+视频
- matlab求曲线极值程序,matlab函数求极值matlab函数求极值.ppt
- Mysql大小写敏感问题
- MATLAB 读取文件及数据
- 【ArcGIS操作】1 基础编辑篇
- Acer 4750 安装黑苹果_黑苹果 Mac OS 10.14.5 Mojave 安装
- 微信HOOK 关于转发消息功能开发的一些开发心得
- QT实现植物大战僵尸中文版工具代码
- 日暮途远,故吾倒行而逆施之.
- 淘淘商城---8.10
- Composite UI Application Block (CAB) 详解
- HTML简单电子日历的设计与实现
- 实践:链表实现控制台通讯录(C++)
- 夜里的天空 是蓝色的吗?