java排序算法之冒泡排序
冒泡排序实现代码:
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排序算法之冒泡排序相关推荐
- Java排序算法:冒泡排序
Java排序算法:冒泡排序 //创建数组并赋值int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};for(int i=0 ...
- Java十大排序算法总结,Java排序算法总结之冒泡排序
本文实例讲述了Java排序算法总结之冒泡排序.分享给大家供大家参考.具体分析如下: 前言:冒泡排序(BubbleSort)就是依次比较相邻的两个数,将小数放在前面,大数放在后面. 下面让我们一起 ...
- java排序算法(插入排序,冒泡排序,选择排序)
java排序算法(插入排序,冒泡排序,选择排序) 先了解原理,然后自己跟着敲一下,加深印象 CMD编译命令:javac -encoding utf-8 SortList.java && ...
- 排序算法之冒泡排序(Java版)
排序:即使集合或数组中的元素有序化 本篇介绍最简单.最易掌握的冒泡排序 冒泡排序: 是一种简单的排序算法, 冒泡排序就像学生站队一样,要在老师的引导下,以某位同学位基准,其他学生按身高 ...
- 排序算法:冒泡排序、插入排序、选择排序、希尔排序
相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 一.冒泡排序: 1.算法原理: 冒 ...
- 十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序
冒泡排序.选择排序.插入排序.希尔排序.归并排序.快速排序.堆排序.计数排序.桶排序.基数排序的动图与源代码. 目录 关于时间复杂度 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 ...
- 数据结构与算法:十大排序算法之冒泡排序
数据结构与算法:十大排序算法之冒泡排序 package array;import java.util.Arrays;//冒泡排序 //1.比较数组中两个相邻的元素,如果第一个数比第二个数大,我们就交换 ...
- java常用算法之冒泡排序简单例子
为了更好的理解冒泡排序过程,下面举一个实例. 初始数组 118 101 105 127 112 一次排序 101 118 105 112 127 二次排序 101 105 118 112 127 三次 ...
- Java排序算法——插入排序(Insertion Sort)
之前总结了交换排序的冒泡排序与选择排序的简单选择排序,这次我们来看看插入排序的简单插入排序~ 往期传送门: 冒泡排序: Java排序算法--冒泡排序(Bubble Sort)https://blog. ...
最新文章
- git gui怎么拉取项目代码_Git GUI使用方法【转】
- 机器人车间气管_大开眼界!机器人焊装车间火力全开
- makefile obj文件路径_makefile中包含的文件的路径
- LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
- Android Studio 第一个JNI程序
- 一款号称最适合程序员的编程字体(JetBrains Mono)专为开发人员设计。
- 【备忘】传智播客黑马程序员28期JavaEE基础及就业班视频教程
- 怎样通过迅捷PDF编辑器来修改PDF文件
- 《计算机世界》封面报道:互联网10年孤独[z]
- c语言课程设计作业心得体会,c语言课程设计总结心得
- 浏览器如何截图整个滚动屏 ?
- 深度学习|迁移学习|强化学习
- JVM--藤原豆腐店自用
- 舆情智慧决策闭环管理平台
- ColMap环境配置
- Winform中TopLevel与TopMost属性的区别
- 手把手教你抄板(待更新)
- iOS Developer:真机测试
- 2022CCPC江苏省赛题解ACIJKL
- 小米手机进行测试uiautomator出现的故障
热门文章
- 06.delete_by_query操作
- (解题报告)L1-032 Left-pad (20分)——15行代码AC
- c语言版票务管理系统,火车票务管理系统(C语言版)【TXT文件,改后缀即可】
- windows7系统损坏修复_修复损坏的系统文件,就用系统文件检查器SFC,简单高效...
- Windows Server 笔记之网络负载平衡(NLB)和服务质量(QoS)简介
- Windows Server 笔记之远程桌面
- web软件测试 测试报告模板_杭州软件测试培训要多长时间?需要学习什么内容?...
- 非极大值抑制_【计算机视觉——RCNN目标检测系列】三、IoU与非极大抑制
- join和group by能一块用吗_冷冻一下地球能缓解温室效应吗?| No.171
- 手机应用软件下载导航php源码_第八篇:你需要一个没有广告的导航吗,我免费给你源码...