java 快速排序和桶排序

package bluebridge;
import java.util.Arrays;
public class sort {
    public static void main(String[] args) {
        int[] arr = {10,2,10,34,5,6};
        tong_sort(arr);
        //quick_sort(arr,0,arr.length );
        print(arr);
    }
    public static void tong_sort(int[] arr){
        int len = get_max(arr);
        int[] newarr = new int[len+1];
        for ( int i: arr) {
            newarr[i]++;
        }
        int j = 0;
        for( int i=0 ;i<len+1 ;i++){
            while (newarr[i]>0){
                newarr[j++] = i;
                newarr[i]--;
            }
        }
        for (int i = 0;i<arr.length;i++){
            arr[i] = newarr[i];
        }
    }
    public static void quick_sort(int[] arr,int start,int end){
        if(start >= end){
            return;
        }
        int left = start+1;
        int right = end-1;
        int temp = arr[left];
        while (left != right){
            while (arr[right]>=temp && left<right){
                right--;
            }
            while (arr[left+1] <= temp && left<right){
                left++;
            }
            if(left<right) {
                int t = arr[left];
                arr[left] = arr[right];
                arr[right] = t;
            }
        }
        arr[start] = arr[left];
        arr[left] = temp;
        quick_sort(arr,start,left-1);
        quick_sort(arr,left+1,end);
    }
    public static int get_max(int[] arr){
        int max = arr[0];
        for (int i = 0 ; i< arr.length-1 ;i++){
            max = max> arr[i+1] ? max : arr[i+1];
        }
        return max;
    }
    public static void print(int[] arr) {
        for (int i = 0; i < arr.length; i++)
            System.out.print(arr[i] + " ");
    }
}
posted @ 2021-07-04 18:57  Fgxr  阅读(59)  评论(0)    收藏  举报