01、算法系列,冒泡排序代码实现 + 讲解
如果你已经学会C,C++(或看过《C++Primer》)的基本语法,想要再精进一层的话,那就是该接触数据结构与算法的时候了,这个系列博文的主题亦如此,所提供的代码都是在学习这些的过程中,自己写的代码,且亲测有效。
无数前辈说过,程序 = 数据结构 + 算法,数据结构就是内存对数据的存储方式,算法就是对数据的加工处理。那么对于超大量的数据,为了管理他们,为了以后好取出想要的值,对他们的加工处理基本上都是按照各种排序方式,排来排去。
《Effictive C++》赞美之音飘于四海,这本书的中文翻译者侯捷,他老人家更是桃李满天下。他第一次听人说了电脑就是对存进来的数据排一下序,很难相信,他认为因为电脑是一种顶级高科技的存在,是用来发射火箭的,怎么就只排排数据。所以很容易忽略排序的重要性,因为我们平时都是处理的小量数据,想取哪一个数据手动,输出一下就行了。
举个业务上的例子,现在各个银行都在建设5G银行,系统会保存客户的人脸图片,当客户下次去银行的时候,门口会有声音欢迎王先生光临~。因为门口会有摄像头做人脸拍照,然后与数据库的照片比对排序。这种比对是一个个比吗,如果客户在上亿的量,一个个比太慢了,系统的实现是按照图片上的特性值,把之前在数据库中存的上亿照片按照一定的方式排序,这样就不需要一个个比对,可以用二分查找这类方法快速找到。
排序算法,分两部分,业务 + 代码,业务即是算法怎么实现这个功能的,文字上描述一下,代码是具体是实现。无论上个小系列数据结构还是接下来的算法,我都将采用这种方式讲解。理解业务更易看懂代码,然有些业务说起来很抽象,照猫画虎的不好文字描述,直接看代码范围理解快一点,所以两者可以结合着来理解。
刚开始学前几个排序时,这些排序是最简单的也是最难的,最简单是因为学了好久之后再回来看,最难是因为刚刚接触的前几个排序,一看晕了,再看排序算法这么多,放弃了。其实不然,只要学会几个,后面就会很轻松,还有助于你以更高的视野看前面学过的算法。
冒泡排序的业务是两层循环,第一层循环控制执行第二层循环的次数。按从左到右依次增大排,第二次循环是选择第一个为基准值,跟第二个进行比较,如果比第二个大,就跟第二个换下位置,否则不换位置,两种情况下都拿第二个为基准值,重复与第三个值比较,一直到两层循环全部结束。
郭襄:我走过山时,山不说话,我路过海时,海不说话,
小毛驴滴滴答答,倚天剑伴我走天涯。
很多时候,这个世界是自己的跟他人无关,生活需要自己去探索,代码要自己码,没人能帮你做这些。
上代码,亲测有效!
01、冒泡排序.cpp
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <string>
int main(void)
{
//定义初始化数组
int myArray[10] = { 2, 1, 4, 3, 6, 5, 8, 7, 0, 9 };
//对数组进行排序
for (int i = 0; i < 9; i++)//数组10个元素排9轮
{
int flag = 1;
for (int j = 0; j < 9; j++)
{
if (myArray[j] > myArray[j + 1])
{
int temp = myArray[j];
myArray[j] = myArray[j + 1];
myArray[j + 1] = temp;
flag = 0;
}
}
if (flag == 1)
{
break;
}
}
//打印数组
for (int i = 0; i < 10; i++)
{
printf("数组元素:%d ", myArray[i]);
}
printf("\n");
system("pause");
return 0;
}
相关文章
- DayDayUp之Job:牛客网—算法工程师—剑指offer之66道在线编程(解决思路及其代码)——41~66
- Pytorch之CNN:从代码认知CNN经典架构—基于Pytorch框架的代码实现经典轻量化卷积神经网络的算法集合(SqueezeNet/MobileNet3/ShuffleNet)
- 计及需求响应的改进灰狼优化算法求解风、光、柴、储容量优化配置(Matlab代码实现)
- 基于改进量子粒子群算法的电力系统经济调度(Matlab代码实现)
- 基于双参数蜜蜂算法解决车辆路径问题(Matlab代码实现)
- 【库存控制】基于象鼻虫损害优化算法求解库存控制问题(Matlab代码实现)
- 偏最小二乘算法(PLS)回归建模 (Matlab代码实现)
- 【不确定性研究】基于信息间隙决策理论的综合能源系统优化调度研究【改进粒子群优化算法求解】(Matlab代码实现)
- 基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)
- 【分布式能源的选址与定容】基于多目标粒子群算法分布式电源选址定容规划研究(Matlab代码实现)
- 通过展开序列ISTA(SISTA)算法创建的递归神经网络(RNN)(Matlab代码实现)
- 人工鱼群算法(AFSA)的梯级水库调度(Matlab代码实现)
- 传感器|基于改进贪心算法的最佳传感器位置选择(Matlab代码实现)
- 基于蜣螂算法改进的LSTM预测算法-附代码
- 智能优化算法:猎食者优化算法-附代码
- 智能优化算法:斑点鬣狗优化算法-附代码
- 智能优化算法:平衡优化器算法 -附代码
- 智能优化算法:乌鸦搜索算法-附代码
- 智能优化算法:引力搜索算法-附代码
- 基于逐维高斯变异的混沌麻雀优化算法-附代码
- 基于反馈机制的鲸鱼优化算法-附代码
- 混沌反馈自适应鲸鱼优化算法研究-附代码
- 多子群的共生非均匀高斯变异樽海鞘群算法-附代码
- 【回答问题】ChatGPT上线了!有哪些3D点云算法模型?3D点云算法模型实现代码?
- 试题 算法训练 乘法表
- 【PMU】基于两种模拟退火方法、两种图论过程和递归安全N算法六种算法的最优PMU布置(OPP)研究(Matlab代码实现)
- 改进差分进化算法及其求解柔性作业车间调度问题(Python代码实现)