冒泡排序

本文采用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];}
}

十大排序算法之冒泡排序相关推荐

  1. 数据结构与算法:十大排序算法之冒泡排序

    数据结构与算法:十大排序算法之冒泡排序 package array;import java.util.Arrays;//冒泡排序 //1.比较数组中两个相邻的元素,如果第一个数比第二个数大,我们就交换 ...

  2. 十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序

    冒泡排序.选择排序.插入排序.希尔排序.归并排序.快速排序.堆排序.计数排序.桶排序.基数排序的动图与源代码. 目录 关于时间复杂度 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 ...

  3. 动态可视化十大排序算法之冒泡排序

    点击上方蓝字关注我们 提到排序算法呀,我想你肯定不陌生.这应该是学习编程时学到的第一个算法了吧. 我现在还能记得自己当时在 VC++ 6.0 上按照谭浩强老师的 C 语言教材敲出第一个冒泡排序时的激动 ...

  4. 经典十大排序算法(含升序降序,基数排序含负数排序)【Java版完整代码】【建议收藏系列】

    经典十大排序算法[Java版完整代码] 写在前面的话 十大排序算法对比 冒泡排序 快速排序 直接选择排序 堆排序 归并排序 插入排序 希尔排序 计数排序 桶排序 基数排序 完整测试类 写在前面的话   ...

  5. 【十大排序算法】(一)冒泡排序算法(优化)

    一.优化第一版 优化第一版是针对类似 int[] arr = {3,2,1,4,5,6,7,8,9; 这样的有很多已经排好序的数组,为了不让它做无用的循环,对于此场景进行的优化,优化代码如下: // ...

  6. 这或许是东半球分析十大排序算法最好的一篇文章

    作者 | 不该相遇在秋天 转载自五分钟学算法(ID:CXYxiaowu) 前言 本文全长 14237 字,配有 70 张图片和动画,和你一起一步步看懂排序算法的运行过程. 预计阅读时间 47 分钟,强 ...

  7. 「干货总结」程序员必知必会的十大排序算法

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 绪论 身 ...

  8. 「归纳|总结」程序员必知必会的十大排序算法

    微信搜一搜「bigsai」关注这个有趣的程序员 新人原创公众号,求支持一下!你的点赞三连肯定对我至关重要! 文章已收录在 我的Github bigsai-algorithm 欢迎star 本文目录 绪 ...

  9. 归并排序执行次数_十大排序算法,看这篇就够了

    排序算法分类[1][2] 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序. 非比较类排序:不通过比较来决定元素间的相对次序,它可以 ...

最新文章

  1. BugkuCTF-Misc:Linux
  2. win8计算机usb无法识别usb设备,Win8.1无法识别USB设备原因分析及解决办法(适合Win8)...
  3. SWT中Button事件的几种不同写法
  4. Mustache.js使用笔记(内容属于转载总结)
  5. spark插件剔除步骤
  6. 2020计算机领域前沿热门技术,CFP: ICPCSEE 2020 (SCI or EI Indexd) 第6届国际计算机前沿大会...
  7. 网络安全世界の迷惑认知图鉴
  8. PHP date() 函数
  9. C语言动态链表实现KTV点歌系统
  10. 实现关于跨二级域名和1.1和2.0版.net Forms身份验证体制的问题和解决办法.
  11. 长路漫漫,唯剑作伴--基础
  12. MAC 安装 Redis 客户端
  13. Windows 10正式版官方原版ISO镜像下载
  14. 信息熵与老鼠试药、称球问题
  15. Springboot面试杀手锏-自动配置原理
  16. PHP审计-RIPS
  17. 中文转换为拼音工具类(很全)
  18. OpenGL中三原色对应的glcolor3f
  19. 原型链----看懂_proto_和prototype
  20. Windows远程代码执行漏洞(CVE-2020-16898) 高危漏洞加固指南

热门文章

  1. (转)简单代码生成器原理剖析(二)
  2. 操作系统实验报告9:进程间通信—管道和 socket 通信
  3. HarmonyOS之变量可视化调试
  4. 编译原理习题(含答案)
  5. 11.2.1 jQuery介绍与使用
  6. 安装好Pycharm后如何配置Python解释器简易教程(configure python interpreter)
  7. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车黑线循迹红外避障综合实验
  8. 【机器视觉】 endwhile算子
  9. 【内核驱动】 在内核源码中添加第一个驱动程序
  10. mysql 存byte数组中_新人求大神教教:如何把一个一维数组存入mysql 表格中