자바 빅 데이터 플랫폼 개발 연구 노트 (11)-빠른 정렬

1. 데이터 구조 및 알고리즘 :


1.1. 빠른 정렬 방법을 만듭니다.

 public static void quickSort(int[] arr, int left, int right){
    
    
     int l = left;
     int r = right;
     int pivot = arr[(left + right) / 2];
     while (l < r){
    
    
         while (arr[l] < pivot){
    
    
             l += 1;
         }
         while(arr[r] > pivot){
    
    
             r -= 1;
         }
         if(l >= r){
    
    
             break;
         }
         int temp = arr[l];
         arr[l] = arr[r];
         arr[r] = temp;
         if(arr[l] == pivot){
    
    
             r -= 1;
         }
         if(arr[r] == pivot){
    
    
             l += 1;
         }
     }
     if(l == r){
    
    
         l += 1;
         r -= 1;
     }
     if(left < r){
    
    
         quickSort(arr, left, r);
     }
     if(right > l){
    
    
         quickSort(arr, l, right);
     }
 }
 

1.2. 주요 방법 :

public static void main(String[] args) {
    
    
    //随机创建8万 个数据
    int arr[]= new int[80000];
    for(int i=0; i<arr.length; i++){
    
    
        arr[i] = (int)(Math.random()*80000);
    }
    //计算 冒泡排序时间
    double start = System.currentTimeMillis();
    System.out.println("计时开始:");
    quickSort(arr,0 ,arr.length-1);//此处写要测试的代码
    double end = System.currentTimeMillis();
    System.out.println("计时结束, 共耗时:"+ (double)((end-start)/1000) +"秒");
}
    

2020 년 9 월 10 일 ChiKong_Tam 작성

추천

출처blog.csdn.net/qq_42209354/article/details/108509702