当前位置:网站首页>超详细!!!让你了解冒泡排序的底层逻辑和思想
超详细!!!让你了解冒泡排序的底层逻辑和思想
2022-07-31 05:17:00 【乐言..】
冒泡排序
前言
本文将细致入微让你理解冒泡排序的底层逻辑,和用法
适合复习和初学者入
提示:以下是本篇文章正文内容,下面案例可供参考
一、冒泡排序是什么
冒泡排序是一种排序数组内元素大小的方法。
二、基本逻辑
让相邻的两个元素进行比较,如果大的话就交换位置
一趟冒泡排序之后9数组最大,移到了数组最右边
所以N个元素时,最坏的情况下,我们要进行n-1次冒泡排序。
主函数如下:
基本逻辑:
1.定义数组
3.用函数实现
4.挨个打印
int main()
{
int arr[10]={9,8,7,6,5,4,3,2,1,0};
bubble_sort(arr);
int i=0;
for(i=0;i<sz;i++)
{
printf("%d",arr[i]);
}
return 0;
}
冒泡排序函数代码如下:
基本逻辑:
1:求数组长度
2:外循环,最多可以进行sz-1次冒泡排序
3:内循环:采用逐渐减少的逻辑
4:实现相邻两个元素的交换
void bubble_sort(int arr[10])
{
int sz =sizeof(arr)/sizeof(arr[0]);
int i=0;
for(i=0;i<sz-1;i++)
{
int j=0;
for(j=0;j<sz-1-i;j++)
{
if arr[j]>arr[j+1]
{
int tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
}
然而神奇的事情发生了,我们经过调试之后发现:
数组根本就没有进行排序?????????
有的新手到这里开始气急败坏,破口大骂:我辛辛苦苦写的代码,结果就是啥也不是???
不急,乐言在这里会给你解答
数组在传参时传达的是数组名,而数组名是首元素的地址
所以当我们监视时,发现值为1;
此时我们要知道一个重要的点:数组传参是,传递的是数组名,而数组名是首元素的地址,所以传参时,传递的就是首元素的地址,所以数组的形式参数是指针变量。(也成为数组名的降级)
所以在函数内求元素个数,是不可取的,修改代码如下:
void bubble_sort(int arr[],int sz)
{
int i=0;
for(i=0;i<sz-1;i++)
{
int j=0;
for(j=0;j<sz-1-i;j++)
{
if arr[j]>arr[j+1]
{
int tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
然后将主函数中加上求数组长度的代码即可!!!
如下:
int main()
{
int arr[10]={9,8,7,6,5,4,3,2,1,0};
int sz=sizeof(arr)/sizeof(arr[0]);
bubble_sort(arr);
int i=0;
for(i=0;i<sz;i++)
{
printf("%d",arr[i]);
}
return 0;
}
总结
1:数组传参是,传递的是数组名,而数组名是首元素的地址,所以传参时,传递的就是首元素的地址,所以数组的形式参数是指针变量。(也成为数组名的降级)
2:冒泡排序的基本逻辑是两两相比较
边栏推荐
- Pytorch学习笔记09——多分类问题
- Introduction to CLS-PEG-FITC Fluorescein-PEG-CLS Cholesterol-PEG-Fluorescein
- box-shadow相关属性
- The content of the wangeditor editor is transferred to the background server for storage
- Image binarization processing of opencv
- mPEG-DSPE 178744-28-0 甲氧基-聚乙二醇-磷脂酰乙醇胺线性PEG磷脂
- DSPE-PEG-Biotin,CAS:385437-57-0,磷脂-聚乙二醇-生物素可延长循环半衰期
- CAS:474922-22-0 Maleimide-PEG-DSPE 磷脂-聚乙二醇-马来酰亚胺简述
- Numpy常用函数
- The array technique, my love
猜你喜欢
CNN的一点理解
Pytorch Daily Practice - Predicting Surviving Passengers on the Titanic
2022年SQL大厂高频实战面试题(详细解析)
Multi-Modal Face Anti-Spoofing Based on Central Difference Networks学习笔记
【Rhapsody学习笔记】3:Dishwasher
Research reagents Cholesterol-PEG-Maleimide, CLS-PEG-MAL, Cholesterol-PEG-Maleimide
UR3机器人运动学分析之逆运动学分析
Cholesterol-PEG-NHS NHS-PEG-CLS cholesterol-polyethylene glycol-active ester can modify small molecular materials
变分自编码器VAE实现MNIST数据集生成by Pytorch
Pytorch每日一练——预测泰坦尼克号船上的生存乘客
随机推荐
Pytorch study notes 7 - processing input of multi-dimensional features
Remote file xxx is mapped to the local path xxx and can‘t be found. You can continue debugging....
VS2019配置配置项目属性自定义输出目录与中间目录
浏览器中的画中画(Picture-in-Picture)API
DingTalk H5 micro-app login authentication
pyspark.ml特征变换模块
ROS之service编程的学习和理解
Where can I find the private files set by myself?
计算图像数据集均值和方差
pytorch模型微调finetuning训练image_dog(kaggle)
Natural language processing related list
【解决问题】RuntimeError: The size of tensor a (80) must match the size of tensor b (56) at non-singleton
mPEG-DMPE 甲氧基-聚乙二醇-双肉豆蔻磷脂酰乙醇胺用于形成隐形脂质体
UR3机器人运动学分析之逆运动学分析
【Rhapsody学习笔记】4:Relations
MW:3400 4-Arm PEG-DSPE 四臂-聚乙二醇-磷脂一种饱和的18碳磷脂
UR3机器人运动学分析之正运动学分析
化学试剂磷脂-聚乙二醇-氨基,DSPE-PEG-amine,CAS:474922-26-4
日志jar包冲突,及其解决方法
Remote file xxx is mapped to the local path xxx and can't be found. You can continue debugging....