冒泡排序和快速排序 速度比较

  1 package com.tang.login;
  2 import java.util.*;
  3 
  4 public class SortTest  {
  5         
  6     //冒泡排序 和 快速排序 速度比较
  7     public static void main(String[] args) {
  8     
  9         int [] a =new int[1000000]  ;
 10         for(int i=0;i<1000000;i++){
 11             int random = (int) (Math.random()*1000000);
 12             a[i]=random;
 13                         
 14         }
 15         
 16         long startTime1=System.currentTimeMillis();
 17         
 18               ooo(a);
 19 //        quickSort(a ,0,a.length-1);
 20         
 21         long endTime1=System.currentTimeMillis();
 22         
 23         System.out.println("程序运行时间: "+(endTime1-startTime1)+"毫秒");
 24         
 25     }
 26     
 27     
 28     /**
 29      * 冒泡排序ooo
 30      * @param a
 31      */
 32 public static void ooo(int [] a){
 33      
 34     int n=a.length;
 35     for (int j = 0; j < n; j++) {
 36         
 37     
 38     for(int i=1;i<n;i++){
 39         if(a[i]<a[i-1]){
 40             int k;
 41             k=a[i-1];
 42             a[i-1]=a[i];
 43             a[i]=k;
 44             
 45         }
 46         
 47     }
 48     
 49     n--;
 50     }
 51     
 52     
 53 
 54     }
 55     
 56 
 57     
 58     
 59     //快速排序算法
 60     
 61 /**
 62  * 快速排序quickSort
 63  * @param a
 64  * @param low
 65  * @param high
 66  */
 67 public static void quickSort(int[] a ,int low,int high){
 68     if(low<high){
 69         int pivot =partition(a,low,high);
 70         quickSort(a, low,pivot-1);
 71         quickSort(a,pivot+1,high);
 72         
 73     }
 74 
 75     }
 76     
 77 public static int partition(int a[],int low,int high){
 78     int key = a[low];
 79     int temp;
 80     while(low<high){
 81         
 82     
 83     for(;low<high;high--){
 84         if(a[high]<key){
 85             temp = a[high];
 86             a[high]=a[low];
 87             a[low]=temp;
 88             
 89             break;
 90         }
 91     }
 92     for(;low<high;low++){
 93         if(a[low]>key){
 94             temp = a[high];
 95             a[high]=a[low];
 96             a[low]=temp;
 97             break;
 98         }
 99         
100     }    
101     
102     }
103     return low;
104         }
105         
106     
107 }

 

posted @ 2017-11-16 15:16  阿尔伯特爱因斯坦  阅读(1897)  评论(0编辑  收藏  举报