当前位置:网站首页>超详细!!!让你了解冒泡排序的底层逻辑和思想
超详细!!!让你了解冒泡排序的底层逻辑和思想
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:冒泡排序的基本逻辑是两两相比较
边栏推荐
- Redis-哈希
- Pytorch实现ResNet
- The content of the wangeditor editor is transferred to the background server for storage
- Phospholipids-Polyethylene Glycol-Active Esters for Scientific Research DSPE-PEG-NHS CAS: 1445723-73-8
- [已解决]ssh连接报:Bad owner or permissions on C:\\Users/XXX/.ssh/config
- Rejection sampling note
- Data Preprocessing, Feature Engineering, and Feature Learning - Excerpt
- cocos2d-x-3.2 create project method
- 2022 SQL big factory high-frequency practical interview questions (detailed analysis)
- Tensorflow边用边踩坑
猜你喜欢
随机推荐
Pytorch学习笔记13——Basic_RNN
PyTorch Study Notes 08 - Loading Datasets
Fluorescein-PEG-DSPE Phospholipid-Polyethylene Glycol-Fluorescein Fluorescent Phospholipid PEG Derivatives
pytorch学习笔记10——卷积神经网络详解及mnist数据集多分类任务应用
IDEA概述和安装及调试
超参数优化-摘抄
Sourcery插件(自动提升代码质量)
CLS-PEG-FITC Fluorescein-PEG-CLS 胆固醇-聚乙二醇-荧光素简介
DSPE-PEG-COOH CAS: 1403744-37-5 Phospholipid-polyethylene glycol-carboxy lipid PEG conjugate
自然语言处理相关list
应用usb_cam同时打开多个摄像头方法
2021年软件测试面试题大全
解决background-size:cover时图片铺满但显示不完整?
UR3机器人雅克比矩阵
np.fliplr与np.flipud
Cholesterol-PEG-Acid CLS-PEG-COOH Cholesterol-Polyethylene Glycol-Carboxyl Modified Peptides
自己设置的私密文件,在哪找
【Rhapsody学习笔记】1:Hello World
a:自我介绍
MySQL 主从切换步骤









