java排序

来源:互联网 发布:mac steam游戏目录 编辑:程序博客网 时间:2024/06/05 18:23
package work.action.workflow;import java.util.Arrays;import java.util.Date;public class TestJava extends Date{    TestJava(){}    public static void main(String[] args){        int arr[] = {5,2,6,4,9,1};/*      System.out.println(Arrays.toString(arr));        sort(arr);        System.out.println(Arrays.toString(arr));*/        System.out.println(Arrays.toString(arr));        quickSort2(arr,0,arr.length-1);        System.out.println(Arrays.toString(arr));    }    //冒泡    public static void sort(int arr[]){        for(int i = 0; i <arr.length; i++){            int min = arr[i];            for(int j=i+1; j<arr.length;j++){                if(arr[j] < min){                    int temp = arr[j];                    arr[j] = min;                    min = temp;                }else{                    continue;                }            }            arr[i] = min;        }    }    //快排,交换时使用中间变量    public static void quickSort1(int arr[], int low, int high){        int l = low;        int h = high;        int key = arr[l];        while(l<h){            while(l<h && arr[h] > key){                h--;            }            //arr[h]<key            if(l<h){                int temp = arr[h];                arr[h] = arr[l];                arr[l] = temp;                l++;            }            while(l<h && arr[l] < key){                l++;            }            if(l<h){                int temp = arr[l];                arr[l] = arr[h];                arr[h] = temp;                h--;            }        }        if(l>low)quickSort1(arr,low,l-1);        if(h<high)quickSort1(arr,l+1,high);    }    //快排,减少交换次数提高效率    public static void quickSort2(int arr[], int low, int high){        int key  = arr[low];        int l = low;        int h = high;        while(l<h){            while(l<h && arr[h] >= key) h--;            if(l<h){                arr[l] = arr[h];                l++;            }            while(l<h && arr[l] <= key) l++;            if(l<h){                arr[h]=arr[l];            }        }        if(l==h) arr[l] = key;        if(l>low) quickSort2(arr,low,l-1);        if(h<high) quickSort2(arr,l+1,high);    }}
0 0
原创粉丝点击