文档章节

效率较高的冒泡排序

skyheng
 skyheng
发布于 2016/08/02 09:13
字数 151
阅读 2
收藏 0
点赞 0
评论 0
<span style="font-size:14px;">
import java.util.Arrays;  
public class BubbleSort {  
    public int[] sort(int[] source){  
        int[] dest=new int[source.length];  
        System.arraycopy(source, 0, dest, 0, source.length);  
        boolean change=true;  
        int temp=0;  
        //外层循环的退出条件是全部比较结束(i>=1),或一趟比较中没有发生位次的改变(change==false)  
        for(int i=dest.length-1;i>=1&&change;i--){  
            change=false;  
            for(int j=0;j<i;j++){  
                if(dest[j]>dest[j+1]){  
                    temp=dest[j];  
                    dest[j]=dest[j+1];  
                    dest[j+1]=temp;  
                    change=true;  
                }  
            }  
        }  
        return dest;  
    }  
    /** 
     * @param args 
     */  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        BubbleSort bubbleSort=new BubbleSort();  
        int[] source=new int[]{2,5,1,4,9,12,10,7,25};  
        int[] dest=bubbleSort.sort(source);  
        for(int i=0;i<dest.length;i++){  
            System.out.println(dest[i]);      
        }  
    }  
}  </span>

本文转载自:http://blog.csdn.net/skychenjh/article/details/46043991

共有 人打赏支持
skyheng
粉丝 0
博文 18
码字总数 0
作品 0
深圳
程序员
趣题一则:交替放置的碟子

有数量为2n的一排碟子,n黑n白交替放置。现在要把黑碟子都放在右边,白碟子都放在左边,但只允许通过交换相邻碟子的位置来实现。实现这个过程要交换多少次? 分析 首先把问题转化一下,用1表...

长征3号 ⋅ 2017/12/13 ⋅ 0

使用概率算法优化快速排序(JAVA)

前言   前面一篇文章系统介绍了快速排序算法,提到快速排序虽然平均时间复杂度为o(n*log2(n)),效率相对比较高。但是其在特殊情况下,比如降序的情况下,效率和冒泡排序一致,这就削弱了快...

林天涯 ⋅ 01/02 ⋅ 0

怎么判断那种排序算法和查找算法更适用当前

排序和查找算法那麽多,但是那些方法更好? 那些方法更有优势? 自己应该主要掌握那几张算法 ? 或者自己当前的数据应该怎么排序或者查找? 今天我们来对应一个实际问题来搭配使用排序算法以...

KiTok ⋅ 2017/11/07 ⋅ 0

排序——冒泡排序法

一、冒泡排序法概述 冒泡排序法的基本思想是:对待排序记录关键字从后往前(逆序)进行多遍扫描,当发现相邻两个关键字的次序与排序要求的规则不符时,就将这两个记录进行交换。这样,关键字...

翼动动空 ⋅ 2016/06/05 ⋅ 0

排序算法篇_冒泡排序法

image   冒泡排序法(Bubble Sort)是所有排序算法中最简单、最基本的一种。冒泡排序法的思路就是交换排序,通过相邻数据的交换来达到排序目的。 冒泡排序算法 冒泡排序算法通过多次比较和...

一笑小先生 ⋅ 01/28 ⋅ 0

java实现冒泡排序

前面实现了快速排序算法,其实这个算是难点的,如果是无序打乱的,用快速排序比较好。冒泡排序是从我们刚接触编程到找工作面试经常能遇见到的,虽然它的效率并不高,但是很重要,不知道你忘记...

晨曦之光 ⋅ 2012/03/13 ⋅ 0

PHP实现排序算法

一、冒泡排序 大O符号:order,译为阶,也可以理解为数量级。 冒泡排序原理步骤 每一轮排序找到最大的值,放在数组的最后,并且,排好序的数不再参与下一轮的排序; 每一轮的排序规则是:每次...

上古遗露 ⋅ 2016/02/24 ⋅ 0

八种排序算法效率比较

从刚上大一那会儿学的C语言开始,就已经接触到了不少排序算法,但当时都只是为了完成简单的排序任务而已,而且所给的数据也不够多,所以看不出各个排序算法间的执行效率的优劣。最近有个数据...

lwaif ⋅ 2015/10/22 ⋅ 0

OC-排序算法总结(冒泡、快速、插入、选择、希尔)

一、时间复杂度和空间复杂度 要学习算法首先要弄明白两个概念 1、时间复杂度:即一个算法执行所耗费的时间,理论上不可计算,只能通过上机测试,但可以根据它的变化规律预估出一个时间,记为...

乔兰伊雪 ⋅ 05/24 ⋅ 0

数据结构基础(1) --Swap & Bubble-Sort & Select-Sort

Swap的简单实现 //C语言方式(by-pointer):template bool swapByPointer(Type pointer1, Type pointer2){ } //C++特有方式(by-reference):template void swapByReference(Type &value1, Type......

翡青 ⋅ 2015/01/01 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对于程序员的招聘问题,作为软件人的一些吐槽和建议

作为软件人,找工作有时候似乎挺苦逼的。 说真的,让我去掉前面这句中“似乎”二字吧。就是苦逼!很多人都曾抱怨处在招聘的一方很糟糕——我们没有任何可靠的方式来甄别会写代码并且写得好的...

老道士 ⋅ 33分钟前 ⋅ 0

HDFS原理学习

一、概述 1、 Hadoop整合了众多的文件系统,首先提供了一个高层的文件系统抽象org.apache.hadoop.fs.FileSystem。然后有各个文件系统的实现类。 2、Hadoop是JAVA编写的,不同文件系统之间的交...

cjxcloud ⋅ 37分钟前 ⋅ 0

Linux下MySQL表名不区分大小写的设置方法(抄袭别人的)

Linux下MySQL表名不区分大小写的设置方法 MySQL表名不区分大小写的设置方法 在用centox安装mysql后,把项目的数据库移植了过去,发现一些表的数据查不到,排查了一下问题,最后发现是表名的大...

随风而浮沉 ⋅ 42分钟前 ⋅ 0

ubuntu下安装宋体simsun

sudo cp simsun.ttc /usr/share/fonts cd /usr/share/fonts sudo chmod 644 simsun.ttc 更新字体缓存: 代码: sudo mkfontscale 代码: sudo mkfontdir 代码: sudo fc-cache -fsv 安装chrome扩......

wangxuwei ⋅ 44分钟前 ⋅ 0

利用 ssh 传输文件

Linux 下一般可以用 scp 命令通过 ssh 传送文件: #把服务器上的 /home/user/a.txt 发送到本机的 /var/www/local_dir 目录下scp username@servername:/home/user/a.txt /var/www/local_dir...

大灰狼时间 ⋅ 54分钟前 ⋅ 0

web3j教程:android和java程序员如何使用web3j开发区块链以太坊

如何使用web3j为Java应用或Android App增加以太坊区块链支持,本教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤...

智能合约 ⋅ 今天 ⋅ 0

web3j开发java或android以太坊智能合约快速入门

web3j简介 web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 可以通过它进行以太坊区块链...

笔阁 ⋅ 今天 ⋅ 0

一起读书《深入浅出nodejs》-异步I/O

异步I/O “异步”这个名词其实很早就诞生了,但它大规模流行却是在Web 2.0浪潮中,它伴随着AJAX的第一个A(Asynchronous)席卷了Web。 为什么要异步I/O 关于异步I/O为何在Node里如此重要,这与...

小草先森 ⋅ 今天 ⋅ 0

JVM各种问题

1、如果启动什么都不设,会怎样? 先来看一个命令 [root@localhost bin]# java -XX:+PrintCommandLineFlags -version -XX:InitialHeapSize=29899008 -XX:MaxHeapSize=478384128 -XX:+PrintCo......

算法之名 ⋅ 今天 ⋅ 0

SAS笔记-宏2

宏是一种文本,一般来说其编译是在程序执行之前。 宏变量的创建 %let语句 %let macro_variables = text; %let是常见的宏变量建立方式,其编译就在执行前。如下例中,想要宏变量test等于数据集...

tonorth123 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部