十大排序算法之冒泡排序
冒泡排序
本文采用Java书写冒泡排序,其他语言类似可以借鉴着写
思想:冒泡排序的思想是相邻的元素两两比较,保证相邻两个数左侧小(大)于右侧,这样一趟比较下来,最大(小)值就会排列在一端。整个过程如同气泡冒起,因此被称作冒泡排序
效果图:下图可以很形象的表现冒泡排序的过程
算法复杂度和稳定性
- 稳定性:
冒泡排序值相等时不交换,因此具有稳定性
- 复杂度:
这里仅仅来说明时间复杂度为:O(N^2)
代码实现
/*** @Description: 冒泡排序* @PackageName: Sort* @ClassName: BubbleSort* @Author: Y-peak* @Date: 2021.08.26 09:15 星期四*/public class BubbleSort {//冒泡排序public static void bubbleSort(int[] arr){if(arr == null || arr.length < 2)return;for (int i = arr.length-1; i >0 ; i++) {for (int j = 0; j < i; j++) {if(arr[j] > arr[j+1])swap(arr, j, j+1);}}}//交换两个独立空间的数,位运算最快public static void swap(int[] arr, int i,int j){arr[i] = arr[i]^arr[j];arr[j] = arr[i]^arr[j];arr[i] = arr[i]^arr[j];}
}
十大排序算法之冒泡排序相关推荐
- 数据结构与算法:十大排序算法之冒泡排序
数据结构与算法:十大排序算法之冒泡排序 package array;import java.util.Arrays;//冒泡排序 //1.比较数组中两个相邻的元素,如果第一个数比第二个数大,我们就交换 ...
- 十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序
冒泡排序.选择排序.插入排序.希尔排序.归并排序.快速排序.堆排序.计数排序.桶排序.基数排序的动图与源代码. 目录 关于时间复杂度 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 ...
- 动态可视化十大排序算法之冒泡排序
点击上方蓝字关注我们 提到排序算法呀,我想你肯定不陌生.这应该是学习编程时学到的第一个算法了吧. 我现在还能记得自己当时在 VC++ 6.0 上按照谭浩强老师的 C 语言教材敲出第一个冒泡排序时的激动 ...
- 经典十大排序算法(含升序降序,基数排序含负数排序)【Java版完整代码】【建议收藏系列】
经典十大排序算法[Java版完整代码] 写在前面的话 十大排序算法对比 冒泡排序 快速排序 直接选择排序 堆排序 归并排序 插入排序 希尔排序 计数排序 桶排序 基数排序 完整测试类 写在前面的话 ...
- 【十大排序算法】(一)冒泡排序算法(优化)
一.优化第一版 优化第一版是针对类似 int[] arr = {3,2,1,4,5,6,7,8,9; 这样的有很多已经排好序的数组,为了不让它做无用的循环,对于此场景进行的优化,优化代码如下: // ...
- 这或许是东半球分析十大排序算法最好的一篇文章
作者 | 不该相遇在秋天 转载自五分钟学算法(ID:CXYxiaowu) 前言 本文全长 14237 字,配有 70 张图片和动画,和你一起一步步看懂排序算法的运行过程. 预计阅读时间 47 分钟,强 ...
- 「干货总结」程序员必知必会的十大排序算法
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 绪论 身 ...
- 「归纳|总结」程序员必知必会的十大排序算法
微信搜一搜「bigsai」关注这个有趣的程序员 新人原创公众号,求支持一下!你的点赞三连肯定对我至关重要! 文章已收录在 我的Github bigsai-algorithm 欢迎star 本文目录 绪 ...
- 归并排序执行次数_十大排序算法,看这篇就够了
排序算法分类[1][2] 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序. 非比较类排序:不通过比较来决定元素间的相对次序,它可以 ...
最新文章
- BugkuCTF-Misc:Linux
- win8计算机usb无法识别usb设备,Win8.1无法识别USB设备原因分析及解决办法(适合Win8)...
- SWT中Button事件的几种不同写法
- Mustache.js使用笔记(内容属于转载总结)
- spark插件剔除步骤
- 2020计算机领域前沿热门技术,CFP: ICPCSEE 2020 (SCI or EI Indexd) 第6届国际计算机前沿大会...
- 网络安全世界の迷惑认知图鉴
- PHP date() 函数
- C语言动态链表实现KTV点歌系统
- 实现关于跨二级域名和1.1和2.0版.net Forms身份验证体制的问题和解决办法.
- 长路漫漫,唯剑作伴--基础
- MAC 安装 Redis 客户端
- Windows 10正式版官方原版ISO镜像下载
- 信息熵与老鼠试药、称球问题
- Springboot面试杀手锏-自动配置原理
- PHP审计-RIPS
- 中文转换为拼音工具类(很全)
- OpenGL中三原色对应的glcolor3f
- 原型链----看懂_proto_和prototype
- Windows远程代码执行漏洞(CVE-2020-16898) 高危漏洞加固指南
热门文章
- (转)简单代码生成器原理剖析(二)
- 操作系统实验报告9:进程间通信—管道和 socket 通信
- HarmonyOS之变量可视化调试
- 编译原理习题(含答案)
- 11.2.1 jQuery介绍与使用
- 安装好Pycharm后如何配置Python解释器简易教程(configure python interpreter)
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车黑线循迹红外避障综合实验
- 【机器视觉】 endwhile算子
- 【内核驱动】 在内核源码中添加第一个驱动程序
- mysql 存byte数组中_新人求大神教教:如何把一个一维数组存入mysql 表格中