一、冒泡排序的原理

冒泡排序,就是从第一个元素开始,通过两两交换,使小的先冒出来,然后再走第二轮使次小的冒出来,直到最后一轮最大的冒出来,排序完成

二、冒泡排序的伪代码实现:

 1 bubblesort(A)
 2 {
 3    for i = 1 to length[A]
 4    {
 5        for j = length[A] to i+1
 6        {
 7            if A[j] < A[j-1]
 8            {
 9                 exchane A[j] and A[j-1];
10            }
11        }
12    }
13 }

三、冒泡排序的Java源码实现

import java.util.Comparator;
public class BubbleSort {/*** 定义一个泛型的冒泡排序method* 学习如何用泛型和以及如何实现冒泡排序* 泛型的类型不能是基础类型的(比如int,double,char等),必须得是引用类型的(比如Integer、Double、Character)*/public static <T> void bubbleSort(T[] t, Comparator<? super T> comparator){T temp = t[0];for(int i = 0; i < t.length-1; i ++){for(int j = t.length-1; j >= i+1; j --)if (comparator.compare(t[j-1], t[j]) > 0){temp = t[j-1];t[j-1] = t[j];t[j] = temp;}}}/*** @param args* main函数是用来做测试的。*/public static void main(String[] args) {// TODO Auto-generated method stubInteger[] ints = {2, 0, 5, 23, 1, 4, 8, 56, 19};bubbleSort(ints, new Comparator<Integer> () {public int compare(Integer o1, Integer o2){return o1.intValue() - o2.intValue();}});for (int i:ints){System.out.print(i + " ");}System.out.println();}}

运行结果:

0 1 2 4 5 8 19 23 56 

四、复杂度分析

O(N^2)

转载于:https://www.cnblogs.com/keke-xiaoxiami/p/4304841.html

Java-排序算法-冒泡排序相关推荐

  1. Java排序算法——冒泡排序 及其稳定性和时间复杂度

    冒泡排序(Bubble Sort) 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误就把他们交换过来.走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成 ...

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

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

  3. Java排序算法:冒泡排序

    Java排序算法:冒泡排序 //创建数组并赋值int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};for(int i=0 ...

  4. Java十大排序算法总结,Java排序算法总结之冒泡排序

    本文实例讲述了Java排序算法总结之冒泡排序.分享给大家供大家参考.具体分析如下: 前言:冒泡排序(BubbleSort)就是依次比较相邻的两个数,将小数放在前面,大数放在后面. 下面让我们一起    ...

  5. java排序算法(插入排序,冒泡排序,选择排序)

    java排序算法(插入排序,冒泡排序,选择排序) 先了解原理,然后自己跟着敲一下,加深印象 CMD编译命令:javac -encoding utf-8 SortList.java && ...

  6. java排序链表冒泡排序_Java中的冒泡排序

    java排序链表冒泡排序 Java Sorting is one of the many aspects of java interview questions. In this post, we w ...

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

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

  8. Java排序算法——选择排序

    Java排序算法--选择排序(Selection sort) 传送门 冒泡排序 插入排序 简述 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找 ...

  9. C语言基础排序算法-冒泡排序

    C语言基础排序算法-冒泡排序 什么是冒泡排序? 顾名思义,这种排序方法就像水中的气泡一样,从底逐渐往上冒,一次前进一步.我们来看一个例子,看看到底是怎么冒泡的.假设有一个数组3,2,5,4,1,我们希 ...

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

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

最新文章

  1. flask 与layui冲突
  2. 【微服务】之六:轻松搞定SpringCloud微服务-API网关zuul
  3. php面向对象(OOP)---- 验证码类
  4. Maven exec:java 运行 Java main 方法
  5. nginx php fpm 日志,nginx下php-fpm不记录php报错日志怎么办?
  6. Dropbox 官方中文版!最优秀实用的免费跨平台文件网络同步网盘云存储服务
  7. python程序源码百行_百行python代码,轻松完成贪吃蛇小游戏
  8. 无人驾驶(在apollo中添加新车辆)
  9. dubbo升级spring4与cxf
  10. UReport2 报表设计器 在线表格
  11. URL 编码和解码工具
  12. GIS制图人员的自我修养(1)--制图误区
  13. 6.Celeste Headlee: 10 ways to have a better conversation | TED Talk
  14. 【无标题】计算机网络故障诊断与排除习题集题库及答案
  15. Beautify Panel 2 for Mac(PS人像磨皮美容插件)中文版
  16. 固定定位(fixed)和粘性定位(sticky)的比较
  17. 区块链为什么叫区块链
  18. USBWebserver(网站架设工具)
  19. 虚拟机黑裙加载硬盘_虚拟机黑群晖拯救实体黑群晖硬盘数据-全网首发。
  20. jrtplib库的使用

热门文章

  1. VS2012生成C的dll并调用以及Python调用C的DLL
  2. Qt工作笔记-自定义菜单(右键菜单)
  3. Qt工作笔记-对QXmlStreamWriter进一步的认识(写复杂的XML文件)
  4. Qt工作笔记-QTreeWidgetItem中type的基本用法
  5. 数据结构-排序进阶代码
  6. Fail2ban详细教程,解决网站被扫描、CC攻击、ssh暴力破解、防爬虫等问题
  7. Ubuntu 20.10 安装 fcitx5 输入法
  8. 10无法更新系统_华为EMUI系统或停留安卓11,无法更新
  9. python turtle_Python简单图形化程序模块——Turtle模块
  10. 59s计时器C语言程序步骤详解,51单片机00-59秒计时器 0-59s Timer