冒泡排序:

就是按索引逐次比较相邻的两个元素,如果大于/小于(取决于需要升序排还是降序排),则置换,否则不做改变

这样一轮下来,比较了n-1次,n等于元素的个数;n-2,n-3 ... 一直到最后一轮,比较了1次

所以比较次数为递减:从n-1 到 1

那么总的比较次数为:1+2+3+……+(n-1),  以等差公式计算:(1+n-1)/2*(n-1) ==> n/2*(n-1) ==> (n^2-n) * 0.5

用大O表示算法的时间复杂度:O(n^2) ,  忽略了系数0.5和常数-n。

算法思想

它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,故名。

代码如下:

int[] array = {56, 15, 10, 69, 1, 21, 6, 85, 30, 45, 73, 93};

//冒泡排序

for (int i = 0; i < array.length; i++) {

for (int j = i+1; j < array.length; j++) {

if (array[i] >= array[j]) {

int temp = array[i];

array[i] = array[j];

array[j] = temp;

}

}

}

System.out.print("冒泡排序的结果是: ");

for (int i : array) {

System.out.print(i + " ");

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java按升序冒泡排序_Java实现冒泡排序算法相关推荐

  1. Java基础类冒泡排序_Java基础 -- 冒泡排序算法(带详细注释)

    冒泡排序的要点: 1.多轮排序,每轮排序中选出最大的元素放在最顶端,并且下次排序不再使用该元素; 2. 使用双for循环,外层for循环控制要排序的次数(轮数), 内层for循环控制当前要排序的元素并 ...

  2. java 字母冒泡排序_java实现冒泡排序

    冒泡排序 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小.首字母从A到Z)错误 就把他们 ...

  3. 用java实现冒泡排序_Java实现冒泡排序

    [java]代码库数组arr: | 13 | 12 | 18 | -3 | 0 | 第一轮 -------------------------- 第一次: | 12 | 13 | 18 | -3 | ...

  4. java快排原理_Java数据结构与算法——快速排序

    声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督.本篇文章介绍排序算法中最常用也是面试中最容易考到的排序算法--快排,包括快排的思 ...

  5. java冒泡遍历对象_Java经典排序算法(冒泡、选择、插入)

    排序算法说明 排序说明 对一序列对象根据某个关键字进行排序. 术语说明 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面: 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b ...

  6. java 大整数编程_Java编程--RSA算法中的大整数运算

    Java编程–RSA算法中的大整数运算 RSA原理浅析 RSA是利用陷门单向函数实现的,其安全基础依赖于大整数的分解问题的难解性 算法过程 为了加深对RSA算法的了解,接下来通过简单的一个例子来分析一 ...

  7. java 二维链表_Java数据结构与算法----数组与链表

    数据类型 1 数据类型介绍 数据类型的分类(按照结构划分):线性结构和非线性结构 线性结构:线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系 线性结构有两种不同的存储结构,即顺序 ...

  8. java string逆序_java经典入门算法题,java初学者必备

    java经典入门算法题 开头求关注警告 喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!需要更多java学习资 料的也可以私信我! 祝关注我的人都:身体健康,财源广进,福如东海,寿比 ...

  9. java 计算矩阵行列式_Java 矩阵行列式算法(非高斯消元)

    最近由于项目任务较少,手上有不少空闲的时间,所以抽空研究了一下矩阵行列式的算法. 先来说说行列式,以下摘自百度百科: 行列式在数学中,是由解线性方程组产生的一种算式.行列式的特性可以被概括为一个多次交 ...

最新文章

  1. TCP报文段首部格式详解
  2. 基于语言模型的少样本学习 / 深度学习优化器基准测试 | 本周值得读
  3. 面向对象基础及UML建模语言
  4. Mac安装RocketMQ和可视化控制台教程
  5. [html] 写一个三栏布局,中间固定,两边自适应(平均)
  6. centOS 搭建pipelineDB docs
  7. #{}不自动改参数类型_我是干流动补胎的,想让我的柴油机气泵自动打气,怎么改装。谢谢。...
  8. js中函数参数值传递和引用传递
  9. 《海量日志数据分析与应用》场景介绍及技术点分析
  10. oracle表空间暴涨,Oracle 11g SYSTEM表空间暴增问题
  11. 利用ExcelJS读取Excel文件
  12. 思科CDP/LLDP协议
  13. spark机器学习电影推荐
  14. unity lookat导致物体颠倒怎么解决_在Unity 2D中如何用一行代码实现LookAt的效果,以及向量归一化小总结...
  15. C++入门——Day5_分支语句和逻辑运算符
  16. 什么是平衡二叉树和平衡二叉树的高度达到O(log2n)最少需要结点数为n
  17. 大白菜U盘装系统工具,被爆出病毒!
  18. ECM是什么-企业内容管理
  19. 布隆过滤器的误判率该如何计算?
  20. 计算机学院保研复试题目,电子科大计算机学院2012届保研复试

热门文章

  1. Silverlight+WCF 新手实例 象棋 WCF通讯跨域(十五)
  2. 面试那点小事,你从未见过的spring boot面试集锦(附详细答案)
  3. 动态路由器与静态路由器的理论知识
  4. 谨慎能捕千秋蝉(二)——CSRF
  5. KDE vs GNOME: 设置,应用和小工具
  6. Java程序设计学习笔记(四)—— GUI
  7. SQL Server 监控系列(文章索引)
  8. WPF数据绑定、多个元素
  9. 学习C语言必须知道的理论知识(第二章-算法)
  10. eclipse格式化代码