冒泡排序就是依次取出最大数,然后依次交换放到数组最后边。

直观写法:

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代码的更多相关文章

  1. 常见的排序算法之Java代码解释

    一 简要介绍 一般排序均值的是将一个已经无序的序列数据重新排列成有序的 常见的排序分为: 1 插入类排序 主要就是对于一个已经有序的序列中,插入一个新的记录.它包括:直接插入排序,折半插入排序和希尔排 ...

  2. java 代码

    java 里的 pandas tablesaw DataFrame 再有就是 spark 了 java 代码规范 Java8特性详解 lambda表达式 Stream Sonar 规则检测 sprin ...

  3. 专题 查找与排序的Java代码实现(一)

    专题 查找与排序的Java代码实现(一) 查找(Searching) 线性查找(linear search) 属于无序查找算法,适合于存储结构为顺序存储或链接存储的线性表. 基本思想:从数据结构线形表 ...

  4. Bubble(冒泡排序)————Java

    用Java进行冒泡排序的代码,利用一个flag进行优化算法: import java.util.Scanner; public class Bubble_Sort { private static i ...

  5. 十大经典排序算法最强总结(含JAVA代码实现)(转)

    十大经典排序算法最强总结(含JAVA代码实现)   最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在“桶排序”算法中对每 ...

  6. 第二章:排序算法 及其他 Java代码实现

    目录 第二章:排序算法 及其他 Java代码实现 插入排序 归并排序 选择排序算法 冒泡排序 查找算法 习题 2.3.7 第二章:排序算法 及其他 Java代码实现 --算法导论(Introducti ...

  7. 对一致性Hash算法,Java代码实现的深入研究

    一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...

  8. 怎样编写高质量的java代码

    代码质量概述     怎样辨别一个项目代码写得好还是坏?优秀的代码和腐化的代码区别在哪里?怎么让自己写的代码既漂亮又有生命力?接下来将对代码质量的问题进行一些粗略的介绍.也请有过代码质量相关经验的朋友 ...

  9. 数据结构笔记--二叉查找树概述以及java代码实现

    一些概念: 二叉查找树的重要性质:对于树中的每一个节点X,它的左子树任一节点的值均小于X,右子树上任意节点的值均大于X. 二叉查找树是java的TreeSet和TreeMap类实现的基础. 由于树的递 ...

随机推荐

  1. WPF 自定义TextBox,可控制键盘输入内容

    非原创,整理之前的代码的时候找出来的,可用,与大家分享一下! public class NumbericBoxWithZero : NumericBox { public NumbericBoxWit ...

  2. testng参数化及用例排序

    http://blog.sina.com.cn/s/blog_6966650401012ra0.html 一.一个简单的测试谷歌搜索 import org.testng.annotations.Tes ...

  3. Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds问题

    错误:Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds. If the server requi ...

  4. ORACLE 自定义分页存储过程

    一.创建包 CREATE OR REPLACE PACKAGE PKG_JK_LAB_BASIC IS TYPE CURSOR_TYPE IS REF CURSOR; PROCEDURE SP_GET ...

  5. 【Bugly干货分享】iOS内存管理:从MRC到ARC实践

    Bugly 技术干货系列内容主要涉及移动开发方向,是由Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 对于iOS程序员来说,内存管理是入门的 ...

  6. STC12C5A60S2笔记4(复位)

    1. 基本特性 STC 单片机有5种复位方式: 1) 热启动复位: 1.1)外部RST引脚复位 第一功能复位脚,即管脚9 RST/P4.7,该管脚拉高维持24个时钟周期+10ms后,单片机进入复位状态 ...

  7. chrome的自动缓存真是讨厌。

    最近老是遇到这样一个问题,为什么我的代码改了,页面却一点变化都没有,难道代码错了,打开chrome的调试窗口一看,md,页面根本就没有刷新,逗你爹玩儿呢. 不过幸好,这该死的缓存是可以关闭的. F12 ...

  8. 依据BOM和已经存在的文件生成其他种类的文件

    在BOM中记录中有物料编码,物料名称,物料规格等,而且依据BOM已经生成了一些的文件,如采购规格书,这个时候需要生成相应的检验规格书模板,可以使用下面的VBA代码,具体代码如下: Function I ...

  9. 3、CC2541芯片中级教程-OSAL操作系统(ADC光敏电阻和修改串口波特率)

    本文根据一周CC2541笔记汇总得来—— 适合概览和知识快速索引—— 全部链接: 中级教程-OSAL操作系统\OSAL操作系统-实验01 OSAL初探 [插入]SourceInsight-工程建立方法 ...

  10. No resource found that matches the given name 'android:Widget.Material.A解决方案

    1:首先新建空白工作区 2:先import appcompat_v7 appcompat_v7在一个类似这样的地方, C:\mywork\android\android-sdk-windows\ext ...