当前位置:网站首页>冒泡排序
冒泡排序
2022-08-08 06:29:00 【物联网布道者】
冒泡排序
算法简介
冒泡排序是一种计算机科学领域的较简单的排序算法,时间复杂度是O(n*n),虽然运行效率较慢,但实现简单,适用于小数据的排序。 冒泡排序要重复的走访要排序的序列,一次比较相邻的两个元素,如果顺序错误就交换两者顺序,通过不断的交换来排序。
算法思想
冒泡排序是比较通过不断比较相邻的元素,通过不断的交换,将大的元素沉到底部,小的元素上浮的前面。
例如,对序列arr[] = {49,38,65,97,76,13,27,49}进行升序排序

经过第一次起泡后,最大的元素已经放到的序列的最后,然后继续进行第二次冒泡:

以此类推,经过8趟起泡后,序列便冒泡排序完成。每一趟的起泡都会将一个最大值移动到序列的后边。直到所有趟数起泡结束即完成排序。
代码示例
void swap(int* a, int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void BubbleSort(int arr[],int n)
{
for(int i=n-1;i>0;i--){
for(int j=0;j<i;j++){
if(arr[j] > arr[j+1]){
swap(&arr[j],&arr[j+1]);
}
}
}
}
边栏推荐
猜你喜欢
随机推荐
诡异的druid链接池链接断开故障经验总结
抽象类和接口的区别
“抽象类”与“接口”有什么区别?
使用js写一个2048
易语言设置多个热键
闭包函数和装饰器
字符串常见方法
论文解读:《Amy pred-FRL是一种通过使用特征表示学习来精确预测淀粉样蛋白的新方法》
“重载”与“重写”的区别
什么是类与对象?
Protein–RNA interaction prediction with deep learning:structure matters
re模块,初识爬虫,openpyxl模块
每日一题47-48
XXL-JOB入门教学
背包问题小结
Task 06 其它优秀的小工具
动手学线性代数
Deep-4mCGP:一种使用基于相关性的特征选择技术预测pickeringii地杆菌中4mC位点的深度学习方法
一文带你了解webrtc基本原理(动手实现1v1视频通话)
基于FTP协议的文件上传与下载


![计算机网络 | 03.[HTTP篇] HTTP缓存技术](/img/ff/c8c6f044ccb5bdff76b7849537d396.png)



![[Unity] C#使用委托事件与字典实现unity消息中心(观察者模式)](/img/30/da85bb67805b68296357bc8a72ed29.jpg)


