冒泡排序法

算法思想:

在排序过程中对相邻元素进行两两比较,越小的元素会慢慢浮到前面(数组低下标处),经过若干趟比较,元素排序完毕。

具体步骤:

程序有两层for循环构成,外层循环控制趟数,内层循环控制该趟的比较次数,内部嵌套一个用于交换元素的if语句。

外层循环:

第一趟比较可以浮出最小的元素,第二趟浮出第二小的元素…每趟循环都可以浮出1个元素,以此类推length个元素共需要length-1趟比较。

内层循环:

第一趟需要进行length-1次比较,第二趟需要进行length-2次比较…每经过一趟,下趟的比较次数就要减1,第n趟需要比较length-n次。

以下给出冒泡排序两种比较方式(以升序排序为例)

从前往后比较:
public static void bubble_sort(int arr[]){for(int i=0;i<arr.length-1;i++) //控制趟数     for(int j=0;j<arr.length-i-1;j++)//递增循环从前往后比较{int temp;if(arr[j]>arr[j+1])//两两比较,若后一个元素小,则交换{temp=arr[j+1];arr[j+1]=arr[j];arr[j]=temp;}     }}
从后往前比较:
public static void bubble_sort(int arr[]){for(int i=0;i<arr.length-1;i++)//控制趟数   for(int j=arr.length-1;j>i;j--)//递减循环从后往前比较{int temp;if(arr[j-1]>arr[j])//两两比较,若后一个元素小,则交换{temp=arr[j-1];arr[j-1]=arr[j];arr[j]=temp;}     }}

排序算法——冒泡排序法(Bubble Sort)相关推荐

  1. scratch之十大经典排序算法-冒泡排序法

    十大经典排序算法简介 0.算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类 ...

  2. 冒泡排序法_排序算法 冒泡排序法

    冒泡排序法 基于Java语言实现 本文主要围绕冒泡排序法的标准版和优化版 冒泡排序法简介 原理:冒泡排序法就是对一组数据进行两两比较,也就是说第一个元素和第二个元素进行比较,如果第一个元素大于第二个元 ...

  3. Java排序算法——插入排序(Insertion Sort)

    之前总结了交换排序的冒泡排序与选择排序的简单选择排序,这次我们来看看插入排序的简单插入排序~ 往期传送门: 冒泡排序: Java排序算法--冒泡排序(Bubble Sort)https://blog. ...

  4. 经典排序算法 - 冒泡排序Bubble sort

    经典排序算法 - 冒泡排序Bubble sort 其原理是比较接近的数字22,按照从小到交换大或降序排列, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头開始进行两两比較交换,直到倒 ...

  5. 算法不会,尚能饭否之排序——冒泡排序(bubble sort)

    这篇博文主要讲的是冒泡排序(Bubble Sort).千万别小看了冒泡排序,去很多的公司面试,上机题很多都是冒泡排序,为什么冒泡排序会成为面试的宠儿呢?这个嘛?其实我也不知道,天知道那些纠结的面试官是 ...

  6. 排序算法——冒泡排序(Bubble Sort)

    排序算法--冒泡排序(Bubble Sort) 算法简介(Introduction) Bubble sort is to compare adjacent elements of the list a ...

  7. 【排序算法系列 1】冒泡排序(Bubble Sort)

    [排序算法系列 1]冒泡排序 [排序算法系列 2]选择排序 [排序算法系列 3] 插入排序 [排序算法系列 4] 高级排序--希尔排序(插入排序的改进) [排序算法系列 5] 高级排序--归并排序 [ ...

  8. python中怎么比较两个列表的大小_python中对列表元素大小排序(冒泡排序法,选择排序法和插入排序法)—排序算法...

    前言 排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列.本文主要讲述python中经常用的三种排序算法,选择排序法 ...

  9. python中对列表元素大小排序(冒泡排序法,选择排序法和插入排序法)—排序算法

    前言 排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列.本文主要讲述python中经常用的三种排序算法,选择排序法 ...

最新文章

  1. 贾扬清感谢信:阿里开源10年,致敬千万开源人
  2. skrollr 中文教程
  3. C#/VB.NET 给Word文档添加/撤销书签
  4. Unity3d XmlException: Text node cannot appear in this state的方案
  5. 已知三角形三边长怎么求面积_已知三角形三边求面积的公式——海伦公式
  6. Makefile(一)
  7. database design
  8. msys2软件包管理工具pacman常用命令
  9. 如何打开别人发布的vue项目---express的使用方法
  10. xssfdataformat 设置单元格式为数值_Excel表格为工作表的部分区域设置保护密码同时隐藏单元格内容。...
  11. 视频教程-MATLAB与SPSS接口-Matlab
  12. 【Docker】Docker下载与安装
  13. Vue/ElementUI上传文件检验
  14. Python量化交易实战教程汇总
  15. 古典恺撒移位密码破解
  16. 【开发日志-已归档】2020-09
  17. proftpd服务器搭建
  18. MNIST数据集的gist特征提取(含全部实例代码下载地址)
  19. 计算机表格怎么取消分页,Excel表格自动分页、取消分页等技巧 专家详解
  20. 【独立站运营】营销邮件被判定为垃圾邮件?四个方法教你避开

热门文章

  1. RMS恢复-鲜为人知的坑
  2. 爬虫周学习总结__赵俊杰
  3. 山地果园管道自动喷雾系统设计与试验
  4. CentOS7中建立共享文件夹及取消自动挂载
  5. 【BZOJ4316】小C的独立集(仙人掌,动态规划)
  6. 流畅的python第八章--对象引用 可变性 垃圾回收
  7. [转载]我一定是疯了
  8. 神经网络模型符号解释!!!蛮重要的,记不住的可以参考下。
  9. 网管必备的一键快速修复电脑网络批处理命令
  10. Microsoft.NET介绍