冒泡排序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类实现的基础. 由于树的递 ...
随机推荐
- new的原罪
一直以为在开发阶段能够直接调用的,速度而言一定是最优秀的,因为总比后期通过反射之类来调用来得快吧. 下面请看一个SB的例子,重新编译以后,这个类在创建100,000,000实体时居然耗费了16秒的时间 ...
- Java SE、Java EE、Java ME
Java SE(Java Platform,Standard Edition).Java SE 以前称为 J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程序.J ...
- javascript练习-私有状态
在经典的面向对象编程中,经常需要将对象的某个状态封装或隐藏在对象内,只有通过对象的方法才能访问这些状态,对外只暴露一些重要的状态可以直接编写.这是就需要私有状态. function Range(fro ...
- Pyhton开源框架(加强版)
info:Djangourl:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 ...
- Ubuntu下使用USB串口
Ubuntu本身一般都带了USB转串口的驱动. 1. 首先确认系统支持USBSerial,输入以下命令: lsmod | grep usbserial 2. 接上USB串口线,看看系统是否可 ...
- XStream学习笔记
XStream 所需jar包: xstream-1.3.jar xpp3_min-1.1.4c.jar xmlpull-1.1.3.1.jar 目录: 1.注解去除,标签中带有包名的节点 2.注解修改 ...
- C++学习心得
从大一的学习中,我了解到C++是兼容C的面向过程和面向对象的程序设计语言.其中,面向对象程序设计方法是以对象为模板的结构化程序设计方法,是对结构化程序设计方法的继承和发展.刚开始的学习让我觉得特别吃力 ...
- samba server install
要求: create vnc service for win7 access it via vnc viewer. 1TB disk for this Centos PC is used as Sam ...
- CSS:谈谈栅格布局
检验前端的一个基本功就是考查他的布局.很久之前圣杯布局风靡一时,这里就由圣杯布局开始,到最流行的bootstrap栅格布局. 圣杯布局 圣杯布局是一种三列布局,两边定宽,中间自适应: * { box- ...
- 【源码笔记】Nop定时任务
网站需要定时执行不同的任务,比如清理无效的数据.定时发送mail等,Nop的这个定时任务设计比较好,简单的说就是将所有任务相同的属性持久化,具体的执行通过继承接口来实现. 持久化对象:Schedule ...