当前位置:网站首页>冒泡排序
冒泡排序
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]);
}
}
}
}
边栏推荐
猜你喜欢
随机推荐
动手学概率论(1)
【Android安全】ActivityManager.isUserAMonkey API
如何把项目部署到云服务器
使用websocket实现服务端主动发送消息到客户端
论文解读:iDRNA-ITF:基于诱导和转移框架识别蛋白质中的DNA和RNA结合残基
盛水最多的容器
论文解读:《Amy pred-FRL是一种通过使用特征表示学习来精确预测淀粉样蛋白的新方法》
“重载”与“重写”的区别
超大Excel文件的写入
Math工具类的ceil()、floor()、round()方法源码阅读
论文解读:《多层肽 - 蛋白质相互作用预测的深度学习框架》
Unity学习笔记 02 —— 更多API
重载与重写的区别
【服务器运维】忘记XShell 服务器口令
类与对象之动静态方法,继承,名字的查找顺序,经典类和新式类,派生方法
FileInputStream & BufferedInputStream之间的区别
关于单例模式
三元表达式,各种生成式,匿名函数相关知识点
计算机网络 | 03.[HTTP篇] HTTP缓存技术
Unity_滑动面板(滚动面板) + UI动画