当前位置:网站首页>超详细!!!让你了解冒泡排序的底层逻辑和思想
超详细!!!让你了解冒泡排序的底层逻辑和思想
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:冒泡排序的基本逻辑是两两相比较
边栏推荐
- IDEA概述和安装及调试
- cv2.resize()是反的
- Cholesterol-PEG-NHS NHS-PEG-CLS 胆固醇-聚乙二醇-活性酯可修饰小分子材料
- wangeditor编辑器内容传至后台服务器存储
- Pytorch学习笔记7——处理多维特征的输入
- 多线程截取视频为每帧
- 解决background-size:cover时图片铺满但显示不完整?
- MySQL 主从切换步骤
- Data Preprocessing, Feature Engineering, and Feature Learning - Excerpt
- Cholesterol-PEG-Azide CLS-PEG-N3 Cholesterol-PEG-Azide MW:3400
猜你喜欢

mPEG-DMPE Methoxy-polyethylene glycol-bismyristyl phosphatidylethanolamine for stealth liposome formation

日志jar包冲突,及其解决方法

mysql 事务原理详解

2021-09-30

CAS:474922-22-0 Maleimide-PEG-DSPE 磷脂-聚乙二醇-马来酰亚胺简述

Attention based ASR(LAS)

Rejection sampling note

Cholesterol-PEG-Thiol CLS-PEG-SH 胆固醇-聚乙二醇-巯基

MW:3400 4-Arm PEG-DSPE 四臂-聚乙二醇-磷脂一种饱和的18碳磷脂

pytorch学习笔记10——卷积神经网络详解及mnist数据集多分类任务应用
随机推荐
Natural language processing related list
2021年软件测试面试题大全
PyTorch Study Notes 08 - Loading Datasets
Learning and understanding of ROS service programming
化学试剂磷脂-聚乙二醇-氨基,DSPE-PEG-amine,CAS:474922-26-4
Three methods of accessing image pixels in opencv
Four common ways of POST to submit data
钉钉企业内部-H5微应用开发
Cholesterol-PEG-Amine CLS-PEG-NH2 胆固醇-聚乙二醇-氨基科研用
Tensorflow——演示
DSPE-PEG-Thiol DSPE-PEG-SH 磷脂-聚乙二醇-巯基脂质体制备用
wangeditor富文本编辑器上传图片以及跨域问题解决
Pytorch学习笔记13——Basic_RNN
Shell/Vim related list
变分自编码器VAE实现MNIST数据集生成by Pytorch
Pytorch实现ResNet
十分钟教你玩转分支语句!!!!!小白速进,新手福利!!
CAS:474922-22-0 Maleimide-PEG-DSPE 磷脂-聚乙二醇-马来酰亚胺简述
np.fliplr与np.flipud
Chemical Reagent Phospholipid-Polyethylene Glycol-Amino, DSPE-PEG-amine, CAS: 474922-26-4