冒泡排序java代码
冒泡排序就是依次取出最大数,然后依次交换放到数组最后边。
直观写法:
public long[] sort(long[] a){ int n = a.length - 1;
// Step:1 选出最大数
for(int i = 0 ; i < n; i++){
// 如果前一个数大于后一个数则交换
if(a[i] > a[i+1]){
a[i] = a[i] ^ a[i+1];
a[i+1] = a[i+1] ^ a[i];
a[i] = a[i] ^ a[i+1];
}
}
n--;
// Step:2 选出第二大数
for(int i = 0 ; i < n; i++){
// 如果前一个数大于后一个数则交换
if(a[i] > a[i+1]){
a[i] = a[i] ^ a[i+1];
a[i+1] = a[i+1] ^ a[i];
a[i] = a[i] ^ a[i+1];
}
}
n--;
// Step:3
for(int i = 0 ; i < n; i++){
// 如果前一个数大于后一个数则交换
if(a[i] > a[i+1]){
a[i] = a[i] ^ a[i+1];
a[i+1] = a[i+1] ^ a[i];
a[i] = a[i] ^ a[i+1];
}
}
n--;
// Step:4
for(int i = 0 ; i < n; i++){
// 如果前一个数大于后一个数则交换
if(a[i] > a[i+1]){
a[i] = a[i] ^ a[i+1];
a[i+1] = a[i+1] ^ a[i];
a[i] = a[i] ^ a[i+1];
}
}
n--;
System.out.println("n=" + n);
// Step:5
for(int i = 0 ; i < n; i++){
// 如果前一个数大于后一个数则交换
if(a[i] > a[i+1]){
a[i] = a[i] ^ a[i+1];
a[i+1] = a[i+1] ^ a[i];
a[i] = a[i] ^ a[i+1];
}
}
n--;
return a;
}
加个for循环:
public long[] sort(long[] a){ int n = a.length - 1;
for(int j = 0 ; j < a.length ; j++){
for(int i = 0 ; i < n; i++){
// 如果前一个数大于后一个数则交换
if(a[i] > a[i+1]){
a[i] = a[i] ^ a[i+1];
a[i+1] = a[i+1] ^ a[i];
a[i] = a[i] ^ a[i+1];
}
}
n--;
}
return a;
}
冒泡排序java代码的更多相关文章
- 常见的排序算法之Java代码解释
一 简要介绍 一般排序均值的是将一个已经无序的序列数据重新排列成有序的 常见的排序分为: 1 插入类排序 主要就是对于一个已经有序的序列中,插入一个新的记录.它包括:直接插入排序,折半插入排序和希尔排 ...
- java 代码
java 里的 pandas tablesaw DataFrame 再有就是 spark 了 java 代码规范 Java8特性详解 lambda表达式 Stream Sonar 规则检测 sprin ...
- 专题 查找与排序的Java代码实现(一)
专题 查找与排序的Java代码实现(一) 查找(Searching) 线性查找(linear search) 属于无序查找算法,适合于存储结构为顺序存储或链接存储的线性表. 基本思想:从数据结构线形表 ...
- Bubble(冒泡排序)————Java
用Java进行冒泡排序的代码,利用一个flag进行优化算法: import java.util.Scanner; public class Bubble_Sort { private static i ...
- 十大经典排序算法最强总结(含JAVA代码实现)(转)
十大经典排序算法最强总结(含JAVA代码实现) 最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在“桶排序”算法中对每 ...
- 第二章:排序算法 及其他 Java代码实现
目录 第二章:排序算法 及其他 Java代码实现 插入排序 归并排序 选择排序算法 冒泡排序 查找算法 习题 2.3.7 第二章:排序算法 及其他 Java代码实现 --算法导论(Introducti ...
- 对一致性Hash算法,Java代码实现的深入研究
一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...
- 怎样编写高质量的java代码
代码质量概述 怎样辨别一个项目代码写得好还是坏?优秀的代码和腐化的代码区别在哪里?怎么让自己写的代码既漂亮又有生命力?接下来将对代码质量的问题进行一些粗略的介绍.也请有过代码质量相关经验的朋友 ...
- 数据结构笔记--二叉查找树概述以及java代码实现
一些概念: 二叉查找树的重要性质:对于树中的每一个节点X,它的左子树任一节点的值均小于X,右子树上任意节点的值均大于X. 二叉查找树是java的TreeSet和TreeMap类实现的基础. 由于树的递 ...
随机推荐
- P1907飞扬的小鸟
P1907飞扬的小鸟 描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或 ...
- vim指令常用
慢慢尝试使用vim,不断学习使用新的快捷键,将常用快捷键但经常容易忘的写下来, 1. 复制黏贴 命令行模式下按住v选中,y表示复制,d表示剪切,p为复制.
- jdk1.6 webService 客户端代码生成和测试
参数:测试webService的地址:http://10.113.11.1:9090/enocpService/buildingEngService?wsdl 1,eclipse中新建一个项目, 2, ...
- 道路翻新 (Revamping Trails, USACO 2009 Feb)
题意:给定m<=50000的1-n有联通的图,求最多可以使K<=20条边变为0的情况下的最短路是多少.. 思路:简单的分层图最短路,对于每个点拆成K个点.. 然后求一边最短路.. code ...
- C#与C++的区别!
(1) 编译目标:C++代码经常编译成汇编语言.而C#则编译成中间语言(IL)它与Java的字节代码有些相似.IL随后在通过Iust-In-Time编译进程转换成本机的可执行代码.IL代码将作为一个装 ...
- 像素&分辨率
1.像素 是组成图像的基本单元:点 2.分辨率 是指在长和宽的两个方向上各拥有的像素的个数. 3.一张640*480的图片,表示图片在每个长度方向上都有640个像素,在宽度方向上都有480个像素,总数 ...
- SSIS oracle 64位 数据源链接
新建数据源 提供程序选择:本机OLE DB ORACLE Provider For OLE DB 服务器名或文件名中选择Oracle Net Manager中配置好的服务名即可 填写账号,密码,测试, ...
- WinObjC?这是什么鬼?
https://github.com/Microsoft/WinObjC 微软啊?!你搞个编译器也就算了?!还把iOS SDK的类库都重写了?这也太不把Apple放眼里了?你就这样拽一大帮iOS的开发 ...
- 避开WebForm天坑,拥抱ASP.Net MVC吧
有鹏友在如鹏网的QQ群中提了一个问题: 请问,在ASP.Net中如何隐藏一个MenuItem,我想根据不同的权限,对功能菜单进行隐藏,用style不行. 如果要仅仅解答这个问题,很好解答,答案很简单: ...
- 【腾讯Bugly干货分享】移动互联网测试到质量的转变
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57ee0934b690d84c3188d7c7 Dev Club 是一个交流移动 ...