冒泡排序 和选择排序 性能比较

原创 2018年04月15日 16:01:14

根据9000长度的 随机数组比较:
冒泡排序花费时间96ms
选择排序花费时间130ms

代码如下:

package testDemo;

import java.util.Arrays;

public class testArraySort {

    public static void main(String[] args) {
        //数组长度
        int length = 9000;
        int[] array = createRandomArray(length);
        //打印数组
        System.out.println("原数组"+Arrays.toString(array));

        //直接排序
        /*long start = System.currentTimeMillis();
        int[] selectSort = selectSort(array);
        long end = System.currentTimeMillis();
        System.out.println("选择排序花费时间"+(end-start));
        System.out.println("选择排序后的数组"+Arrays.toString(selectSort));*/

        //调用冒泡排序
        long start1 = System.currentTimeMillis();
        int[] bubbleSort = bubbleSort(array);
        long end1 = System.currentTimeMillis();
        System.out.println("冒泡排序花费时间"+(end1-start1));
        System.out.println("冒泡排序后的数组"+Arrays.toString(bubbleSort));

    }

    public static int[] selectSort(int[] arr){
        for(int x=0; x<arr.length-1; x++){
            //为什么y的初始化值是 x+1?因为每一次比较,都用x角标上的元素和下一个元素进   行比较。
            for(int y=x+1; y<arr.length; y++){
                if(arr[x]>arr[y])
                {
                    int temp = arr[x];
                    arr[x] = arr[y];
                    arr[y] = temp;
                }
            }
        }
        return arr;
      }



    public static int[] bubbleSort(int[] arr){
        for(int x=0; x<arr.length-1; x++){
            for(int y=0; y<arr.length-x-1; y++){//-x:让每次参与比较的元减。//-1:避免角标越界。
                if(arr[y]>arr[y+1])
                {
                    int temp = arr[y];
                    arr[y] = arr[y+1];
                    arr[y+1] = temp;
                }
            }
        }
        return arr;
}


    private static int[] createRandomArray(int length) {
        int[] array = new int[length];

        for(int i=0;i<array.length;i++){

        array[i] = (int)(Math.random()*length);

        }

        return array;
    }





}

数据结构JAVA版2017教学视频课程

本课程共28个教学视频课程,22小时的教学时间,深入浅出的理论讲解,用JAVA语言实现每个知识点的代码,大量的上机练习题讲解,通过家家乐停车场,佳佳乐彩票机,佳佳乐通讯录,编译原理的语法分析等项目的综合应用实训,上课PPT,上课源代码等资料可以直接下载使用
  • 2017年03月31日 13:31

基础排序总结(冒泡排序、选择排序、插入排序)

1、冒泡排序1.1、简介与原理冒泡排序算法运行起来非常慢,但在概念上它是排序算法中最简单的,因此冒泡排序算法在刚开始研究排序技术时是一个非常好的算法。冒泡排序原理即:从数组下标为0的位置开始,比较下标...
  • u013249965
  • u013249965
  • 2016-09-18 16:08:55
  • 4648

直接插入排序/快速排序/选择排序/冒泡排序(详细实现算法和性能比较)

  • 2016年03月20日 15:36
  • 332KB
  • 下载

JAVA中常见的四种排序--冒泡排序、选择排序、插入排序和快速排序 详解

1、排序的介绍 排序是将一群数据,按照指定的顺序进行排列的过程。 2、排序的分类 内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换式排序、选择排序和插入排序) 外部排序:数据量...
  • zyj0813
  • zyj0813
  • 2017-10-20 16:20:24
  • 274

【算法】插入排序/冒泡排序/选择排序

插入排序 插入排序的思想为:从数组的第二个元素开始遍历整个数组。针对每个元素,依次将其前面的所有元素和他进行比较,大于它的元素均向后移动,最后将该元素插入。 插入排序是一种稳定的排序算法。 时间...
  • cauchyweierstrass
  • cauchyweierstrass
  • 2015-11-10 20:33:52
  • 1973

Java排序算法之冒泡排序和选择排序

前言:纵然伤心,也不要愁眉不展,因为你不知是谁会爱上你的笑容。——泰戈尔 《飞鸟集》 原文出处: import java.util.Arrays; class Demo { public...
  • u014158743
  • u014158743
  • 2016-09-19 23:14:52
  • 1045

冒泡排序,选择排序,插入排序的区别

#include int swap(int *a,int *b) { int t=*a; *a=*b; *b=t; } /* 冒泡排序的原理:每次在无序队列里将相邻两个数依...
  • wdkirchhoff
  • wdkirchhoff
  • 2014-12-07 14:02:56
  • 10010

各种排序总结(一)之--—冒泡排序、选择排序、快速排序

各种排序总结——冒泡排序、选择排序、快速排序        1、冒泡排序是比较经典的排序方法,是一种用时间换空间的排序方法。我总结了一下它的特点:(1)它的时间复杂度是;(2)每一趟相邻元素两两比较完...
  • xinyu2015
  • xinyu2015
  • 2015-11-04 16:36:11
  • 5439

java中冒泡排序与选择排序的区别

初学java语言,排序算法绝对是我们拿来实践的好例子。而在排序中有两种简单的算法是绕不开的,就是冒泡排序与选择排序。下面来分别讲解: 冒泡算法:假设数组长度为lenght,冒泡算法的外循环为leng...
  • tiantianhuanle
  • tiantianhuanle
  • 2016-10-15 21:27:54
  • 6871

冒泡排序和快速排序的时间性能比较

  • 2011年06月24日 16:43
  • 41KB
  • 下载
收藏助手
不良信息举报
您举报文章:冒泡排序 和选择排序 性能比较
举报原因:
原因补充:

(最多只允许输入30个字)