排序算法

内部排序(内存)

插入排序(直接插入 希尔排序)

选择排序(简单选择 堆排序)

交换排序(冒泡 快排)

归并排序

基数排序

外部排序(外部存储)

主要考虑时间复杂度,用空间换时间(缓存)

package 排序;

public class 快排 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
     int[] arr= {1,9,6,7,3,4,5};
     quicksort(arr, 0, 6);
     for(int i=0;i<7;i++) {
         System.out.print(arr[i]+" ");
     }
     
    }
    public static void quicksort(int[] arr, int left,int right) {
        if(left>=right)return;//必须要有 否则栈溢出
        int l=left;
        int r=right;
        int key=arr[left];
        int tmp=0;
        while(l<r) {
            while(arr[l]<key&&l<r) {
                l++;
            }
            while(arr[r]>key&&l<r) {
                r--;
            }
            if(l<r) {
                tmp=arr[l];
                arr[l]=arr[r];;
                arr[r]=tmp;
            }
        }
        arr[l]=key;
        quicksort(arr, left, l-1);
        quicksort(arr, l+1, right);
    }

}

 

posted @ 2019-06-30 21:56  hhhl  阅读(96)  评论(0)    收藏  举报