当前位置:网站首页>超详细!!!让你了解冒泡排序的底层逻辑和思想
超详细!!!让你了解冒泡排序的底层逻辑和思想
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:冒泡排序的基本逻辑是两两相比较
边栏推荐
- crontab的定时操作
- Rejection sampling note
- Pytorch study notes 7 - processing input of multi-dimensional features
- CAS:474922-22-0 Maleimide-PEG-DSPE 磷脂-聚乙二醇-马来酰亚胺简述
- Introduction to CLS-PEG-FITC Fluorescein-PEG-CLS Cholesterol-PEG-Fluorescein
- 评估机器学习模型-摘抄
- Image binarization processing of opencv
- cv2.resize()是反的
- Pytorch实现ResNet
- ImportError: cannot import name ‘Xxxx‘ from partially initialized module ‘xx.xx.xx‘
猜你喜欢

pytorch模型微调finetuning训练image_dog(kaggle)

The solution to the IDEA console not being able to enter information

【Rhapsody学习笔记】1:Hello World

Chemical Reagent Phospholipid-Polyethylene Glycol-Amino, DSPE-PEG-amine, CAS: 474922-26-4

Pytorch实现ResNet

Cholesterol-PEG-Acid CLS-PEG-COOH 胆固醇-聚乙二醇-羧基修饰肽类化合物

Attention based ASR(LAS)

DSPE-PEG-Thiol DSPE-PEG-SH 磷脂-聚乙二醇-巯基脂质体制备用

wangeditor编辑器内容传至后台服务器存储

ImportError: cannot import name ‘Xxxx‘ from partially initialized module ‘xx.xx.xx‘
随机推荐
DSPE-PEG-Azide DSPE-PED-N3 磷脂-聚乙二醇-叠氮脂质PFG
mPEG-DSPE 178744-28-0 甲氧基-聚乙二醇-磷脂酰乙醇胺线性PEG磷脂
解决nx安装 jtop问题
random.randint函数用法
Session和Cookie,Token
pyspark.ml feature transformation module
Wangeditor rich text editor to upload pictures and solve cross-domain problems
超详细!!!让你通透数组!!!初学复习不迷路!!
钉钉H5微应用免登鉴权
DSPE-PEG-COOH CAS: 1403744-37-5 Phospholipid-polyethylene glycol-carboxy lipid PEG conjugate
Natural language processing related list
PyTorch Study Notes 08 - Loading Datasets
UR3机器人运动学分析之逆运动学分析
wangeditor富文本编辑器上传图片以及跨域问题解决
四种常见的POST提交数据方式
活体检测CDCN学习笔记
CLS-PEG-FITC Fluorescein-PEG-CLS 胆固醇-聚乙二醇-荧光素简介
MySQL free installation download and configuration tutorial
box-shadow相关属性
Fluorescein-PEG-DSPE Phospholipid-Polyethylene Glycol-Fluorescein Fluorescent Phospholipid PEG Derivatives