冒泡排序实现代码:

public static void sort(int[] arr) {for (int i = 1; i < arr.length; i++) {for (int j = 0; j < arr.length - i; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}

源码分析:冒泡排序的思路是优先把较大元素放到数组最后位置。程序开始运行时i=1,j=[0,arr.length-1],最内层for循环从数组第一个位置开始,比较前两个位置元素大小,如果更靠前的元素更大,则交换两个元素位置,直到数组末尾,此时已经把数组内最大元素移动到数组末尾。由于数组最末位置已经排序,第二次循环不需要再比较到最末位置,此时i=2,j=[0,arr.length-2],经过循环,将第二大元素排到数组倒数第二个位置。以此类推,直到完成最后两个元素的排序。

冒泡排序的原理其实就是优先对较大元素进行排序,一般放到数组尾部,作为已排序部分,前面部分作为未排序部分,然后前部找出较大元素,直到只剩一个元素。

生成一个大小为10000的随机数组测试:

public static void main(String[] args) {int length = 10000;int[] arr = new int[length];Random random = new Random();for (int i = 0; i < length; i++) {arr[i] = random.nextInt(length);}long time = System.currentTimeMillis();sort(arr);System.out.println(System.currentTimeMillis() - time);}

java排序算法之冒泡排序相关推荐

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

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

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

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

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

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

  4. 排序算法之冒泡排序(Java版)

    排序:即使集合或数组中的元素有序化 本篇介绍最简单.最易掌握的冒泡排序 冒泡排序:         是一种简单的排序算法, 冒泡排序就像学生站队一样,要在老师的引导下,以某位同学位基准,其他学生按身高 ...

  5. 排序算法:冒泡排序、插入排序、选择排序、希尔排序

    相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 一.冒泡排序: 1.算法原理: 冒 ...

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

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

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

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

  8. java常用算法之冒泡排序简单例子

    为了更好的理解冒泡排序过程,下面举一个实例. 初始数组 118 101 105 127 112 一次排序 101 118 105 112 127 二次排序 101 105 118 112 127 三次 ...

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

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

最新文章

  1. git gui怎么拉取项目代码_Git GUI使用方法【转】
  2. 机器人车间气管_大开眼界!机器人焊装车间火力全开
  3. makefile obj文件路径_makefile中包含的文件的路径
  4. LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
  5. Android Studio 第一个JNI程序
  6. 一款号称最适合程序员的编程字体(JetBrains Mono)专为开发人员设计。
  7. 【备忘】传智播客黑马程序员28期JavaEE基础及就业班视频教程
  8. 怎样通过迅捷PDF编辑器来修改PDF文件
  9. 《计算机世界》封面报道:互联网10年孤独[z]
  10. c语言课程设计作业心得体会,c语言课程设计总结心得
  11. 浏览器如何截图整个滚动屏 ?
  12. 深度学习|迁移学习|强化学习
  13. JVM--藤原豆腐店自用
  14. 舆情智慧决策闭环管理平台
  15. ColMap环境配置
  16. Winform中TopLevel与TopMost属性的区别
  17. 手把手教你抄板(待更新)
  18. iOS Developer:真机测试
  19. 2022CCPC江苏省赛题解ACIJKL
  20. 小米手机进行测试uiautomator出现的故障

热门文章

  1. 06.delete_by_query操作
  2. (解题报告)L1-032 Left-pad (20分)——15行代码AC
  3. c语言版票务管理系统,火车票务管理系统(C语言版)【TXT文件,改后缀即可】
  4. windows7系统损坏修复_修复损坏的系统文件,就用系统文件检查器SFC,简单高效...
  5. Windows Server 笔记之网络负载平衡(NLB)和服务质量(QoS)简介
  6. Windows Server 笔记之远程桌面
  7. web软件测试 测试报告模板_杭州软件测试培训要多长时间?需要学习什么内容?...
  8. 非极大值抑制_【计算机视觉——RCNN目标检测系列】三、IoU与非极大抑制
  9. join和group by能一块用吗_冷冻一下地球能缓解温室效应吗?| No.171
  10. 手机应用软件下载导航php源码_第八篇:你需要一个没有广告的导航吗,我免费给你源码...