`
jackroomage
  • 浏览: 1215052 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

用java比较几种算法的执行效率

阅读更多

public class paixu {
 /**
  * @param args
  */

//冒泡法就是每循环一次,把最大的数字留在最下面。然后再从前n-1里面继续冒泡法。
 public void maoPao(int[] number){
  int in,out;
  for(out=number.length-1;out>0;out--){
   for(in=0;in<out;in++){
    if(number[in]>number[in+1]){
     int temp=number[in+1];
     number[in+1]=number[in];
     number[in]=temp;
    }
   }
  }
 }
 public void chaRu(int[] number){
  int in,out;
  for(out=1;out<number.length;out++){
   int temp=number[out];
   in=out;
   while(in>0&&number[in]>temp){
    number[in]=number[in-1];
    in--;
   }
   number[in]=temp;
  }
 }

//选择法就是,把前n个值一个一个的比较,把最小的值放在第一个位置,再从第二个位置比较后面的值,把最小的值放在第二个位置。以此类推,就实现的排序。
 public void xuanZe(int[] number){
  int in,out;
  for(in=0;in<number.length-1;in++){
   for(out=in+1;out<number.length;out++){
    if(number[in]>number[out]){
     int temp=number[out];
     number[out]=number[in];
     number[in]=temp;
    }
   }
  }
  
 }
 public void display(int[] number){
  for(int i=0;i<number.length;i++)
   System.out.print(number[i]+" ");
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  paixu p=new paixu();
  int sz[]=new int[]{1,4,5,2,7,6,9,67,87,23,-3,-4,90};
  System.out.print("原排序是:");
  p.display(sz);
  System.out.println("");
  long begin=System.nanoTime();
  p.maoPao(sz);
  long end=System.nanoTime();
  System.out.print("冒泡时间用时:"+(end-begin)+"纳秒");
  p.display(sz);
  System.out.println("");
  begin=System.nanoTime();
  p.chaRu(sz);
  end=System.nanoTime();
  System.out.print("插入时间用时:"+(end-begin)+"纳秒");
  p.display(sz);
  System.out.println("");
  begin=System.nanoTime();
  p.xuanZe(sz);
  end=System.nanoTime();
  System.out.print("选择时间用时:"+(end-begin)+"纳秒");
  p.display(sz);
 }
}
 
 
 
 
运行后的结果是
原排序是:1 4 5 2 7 6 9 67 87 23 -3 -4 90
冒泡时间用时:8940纳秒-4 -3 1 2 4 5 6 7 9 23 67 87 90
插入时间用时:6844纳秒-4 -3 1 2 4 5 6 7 9 23 67 87 90
选择时间用时:8590纳秒-4 -3 1 2 4 5 6 7 9 23 67 87 90

 
经过多次试验 插入排序是用时最少效率最快的

 

分享到:
评论

相关推荐

    oracle连接java的几种方法

    本篇文章将详细介绍在Java中连接Oracle数据库的几种常见方法,以及相关的源码示例。 1. JDBC-ODBC桥连接: JDBC-ODBC桥是Java早期连接数据库的一种方式,它依赖于操作系统上的ODBC数据源。首先,你需要在系统中...

    java排序算法效率比较

    本实验通过生成大量随机数并写入文件,然后使用四种不同的排序算法进行排序,以比较它们的效率。以下是对这四种排序算法的详细解释: 1. **冒泡排序(Bubble Sort)** 冒泡排序是最基础的排序算法之一,它通过重复...

    C回调java几种方法

    本文将详细探讨C回调Java的几种方法。 1. **注册本地方法** 在JNI中,Java虚拟机(JVM)启动时会加载一个`JNI_OnLoad`函数,这是C代码与Java世界接触的第一个入口。在这个函数中,我们可以使用`RegisterNatives`...

    Java几种排序算法

    本文将详细介绍Java中常见的几种排序算法,包括冒泡排序、快速排序以及选择排序。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之一,它的主要思想是通过不断比较相邻元素并交换位置,使得较大的元素逐渐“浮”到...

    Oracle中SQL语句执行效率的查找与解决

    本文将深入探讨Oracle中SQL语句执行效率的查找与解决方法,特别关注于如何识别和优化那些导致性能瓶颈的查询。 ### Oracle SQL执行效率:查找与解决 #### 一、资源消耗分析 在Oracle中,SQL语句执行效率低下通常...

    JAVA关于几种排序算法的性能比较.pdf

    这个文件"JAVA关于几种排序算法的性能比较.pdf"显然探讨了不同排序算法在Java环境下的效率对比,包括直接插入排序、直接选择排序、冒泡排序、希尔排序、快速排序和堆排序。这些排序算法各有优劣,适用于不同的场景,...

    Java几种常见的排序算法(经典收藏)

    根据给定的文件信息,我们可以深入探讨几种在Java中实现的经典排序算法,这些算法是数据结构与算法领域的重要组成部分,广泛应用于各种计算机科学场景。以下是对插入排序(Insertion Sort)、冒泡排序(Bubble Sort...

    将JAVA编译为EXE的几种方法

    以下将详细阐述几种将Java编译为EXE的方法。 1. **JAR to EXE转换器** JAR(Java Archive)文件是Java类库的集合,可以包含源代码、资源文件和元数据。一些工具如Excelsior JET、Launch4j和Jar2Exe可以帮助我们将...

    java_遗传算法_

    在Java中实现遗传算法,主要涉及到以下几个核心概念和技术: 1. **编码方式**:遗传算法中的个体通常被编码为二进制串、浮点数序列或自定义的数据结构,比如数组。在Java实现中,我们需要设计合适的编码方式来表示...

    将Java应用程序本地编译为EXE的几种方法

    本文将详细探讨将Java应用程序本地编译为EXE的几种常用方法,包括工具的选择、使用步骤以及各自的特点。 ### 方法一:使用TowerJ编译器 [TowerJ](http://www.towerj.com)提供了一种将CLASS文件转换为EXE文件的解决...

    JAVA实现各种算法

    在编程领域,算法是解决问题的关键,而Java作为一种广泛使用的编程语言,提供了丰富的工具和技术来实现各种算法。本文将深入探讨标题和描述中提及的几个重要算法:冒泡排序、递归算法、快速排序以及汉诺塔的实现。 ...

    密码学AES算法(JAVA版本)

    Java提供了丰富的API来支持加密技术的应用,主要包括以下几种库和技术: - **Java Cryptography Extension (JCE)**:提供了一系列加密和解密的服务。 - **Java Cryptography Architecture (JCA)**:定义了一套加密...

    几种经典排序算法的Java实现

    ### 几种经典排序算法的Java实现 #### 排序算法概述 排序是计算机科学中的基本操作之一,用于处理一组数据元素(或记录),通过排序操作使得这些元素按照一定的关键字顺序排列。根据不同的应用场景和需求,排序...

    DES算法java实现

    由于其计算效率高、加密速度快等特点,在过去的几十年里被广泛应用。 ##### 2. Java安全API Java提供了强大的安全API支持,包括但不限于`java.security`包和`javax.crypto`包。这些API使得在Java应用程序中实现加密...

    java链接postgresql

    综上所述,"java链接postgresql"涉及到的关键技术包括JDBC接口的使用、PostgreSQL JDBC驱动的集成、数据库连接的建立与关闭、SQL语句的执行和结果处理。通过封装好的`Test`文件,我们可以快速学习和应用这些知识,...

    Java字节码执行的可并行性分析及方法.pdf

    Java字节码执行的可并行性对提高Java程序的执行效率具有重要意义。 六、参考文献 [1] Peng X, Chen D. Analysis and method of parallelism executed by Java byte code. Journal of Sichuan Post and ...

Global site tag (gtag.js) - Google Analytics