java实现冒泡排序 (2012-05-23 10:18:22)
public class test1 {
public static void main(String[] args) {
// 冒泡排序
int[] arr = { 10, 2, 34, 5, 12, 8, 43 };
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) { // 如果后一个数小于前一个数交换
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
for(int n = 0;n<arr.length;n++)
{
System.out.println(arr[n]);
}
}
}
第一趟循环比较之后的结果
10 2 34 5 12 8 43
2 10 5 12 8 34 43
冒泡排序的过程很简单,就是将第一个记录的关键字和第二个记录的关键字进行比较,如果后面的比前面的小则交换,然后比较第二个和第三个,依次类推。比完一趟,最大的那个已经放到了最后的位置,这样就可以对前面N-1个数再循环比较。
所以代码可以解释为:要最终排序必须循环arr.length次,而每一次循环都是两两比较,好比第一次循环(此时i=0)10和2比较,10比2大交换位置;然后10再跟34比较,34大,交换位置;然后34再跟5比较,34大,交换位置;然后34再跟12比较,34大,交换位置;然后34再跟8比较,还是34大,交换位置;最后34跟43比较,43大,不交换位置,所以最后第一次循环结束,接下来就是第二趟循环,第二趟循环就剩下arr.length-1-i(此时的i就等于1,所以就剩下5个数的循环),这就是为什么arr.length的外层for循环里要嵌套arr.length-i-1次循环.
java实现冒泡排序 (2012-05-23 10:18:22)相关推荐
- 日志10.24整合项目文档并运行+周报10.18~22工作总结
日志10.24整合项目文档并运行 一. 安装pnpm,更新代码与远程同步,启动后端itms-server.前端itms-webapp项目 1.安装pnpm:已管理员身份运行命令行,跳转到前端文件夹it ...
- Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18)
摘自: http://www.blogjava.net/BlueSUN/archive/2007/03/10/103014.html Groovy轻松入门--通过与Java的比较,迅速掌握Groovy ...
- QT学习-10/18/2012
1.QT-使QSplitter分割线不能移动:http://cooker.iteye.com/blog/733481 m_tableSplitter = new QSplitter(Qt::Horiz ...
- Java黑皮书课后题第10章:*10.18(大素数)编写程序找出五个大于Long.Max_VALUE的素数
10.18(大素数)编写程序找出五个大于Long.Max_VALUE的素数 题目 破题 代码 运行结果 题目 10.18(大素数)编写程序找出五个大于Long.Max_VALUE的素数 破题 类似编程 ...
- java 数组冒泡排序、转置(降序)
1.java 数组冒泡排序 排序的基本原理(升序): 原始数据: 2 .1 .9 .0 .5 .3 .7 .6 .8: 第一次排序: 1 .2 .0 .5 .3 .7 .6 .8 .9 : 第二次 ...
- Java随堂小记05
Java随堂小记05 数组 数组的常见异常 三种数组的初始化 数组的使用 二维数组 Arrays类 打印数组:Arrays.toString(变量名) 升序排序:Arrays.sort(arr) 冒泡 ...
- Java基础学习总结(23)——GUI编程
2019独角兽企业重金招聘Python工程师标准>>> 一.AWT介绍 所有的可以显示出来的图形元素都称为Component,Component代表了所有的可见的图形元素,Compo ...
- http://www.cnblogs.com/tornadomeet/archive/2012/05/24/2515980.html
转载: Deep Learning(深度学习): ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一 ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰 ...
- kubeadm部署V1.23.10
目录 一.集群规划 二.基础环境配置 1.配置/etc/hosts文件 2.设置主机名 3.安装yum源(Centos7) 4.必备工具安装 5.所有节点关闭firewalld .dnsmasq.se ...
最新文章
- android viewgroup 事件,android中viewgroup的事件传递分析
- 【Python学习系列二十一】pandas库基本操作
- android 编辑框带拖动,Android带输入框的对话框
- 阿里巴巴开源容器镜像加速技术
- python衍生特征
- 深度linux安装postgresql_在 Linux 上安装 PostgreSQL
- FFT快速傅立叶变换
- jquery datatable搜索框添加按钮,改变keypress搜索为点击按钮搜索
- [Kaggle] Spam/Ham Email Classification 垃圾邮件分类(spacy)
- usage: git remote add [options] name url -f, --fetch fetch the remote branches ...
- 关于联想安装linux系统后无法扫描出wifi网络问题解决方案
- 简易数字电路交通灯设计
- 【项目管理/PMP/PMBOK第六版/新考纲】纯干货!商业论证/效益管理计划/项目运行环境/组织过程资产/环境事业因素/组织系统,系列笔记建议收藏!
- 通过电脑重置解决小米笔记本巨卡无比的问题
- apiCloud + aui实现tab栏切换功能
- 在校生的实习经历怎么写
- 全国大学生软件测试大赛Web应用测试(二)Selenium功能测试环境配置
- PCL中3D点云特征描述与提取(三)
- Ubuntu安装hp打印机
- CCF_Java_201612-2_工资计算
热门文章
- 腾讯云服务器windows系统重装为Linux系统
- html标签手册 360doc,基于AJAX的文件上传控件NetAdvantage for jQuery
- 利用Jenkins+蒲公英平台显示二维码 部署Android打包踩过的坑
- linux下安装安装jdk和安装android studio
- 浮点运算单元FPU能给电机控制带来什么?
- 安装RedHat Linux 7.4
- 提供数据库连接池 和数据库连接
- 【MYSQL报错】ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry
- python特征选择relieff图像特征优选_基于Relief特征选择算法的研究与应用
- 计算机内存的安装方法,电脑内存条安装教程_电脑内存条安装注意事项