美文网首页
快速排序 Java

快速排序 Java

作者: 楼主楼主 | 来源:发表于2018-05-24 16:37 被阅读0次
public void quickSort(int[] arr){
    quickSort(arr,0,arr.length-1);
}
private void quickSort(int[] arr,int left,int right){
    if(left>=right){
        return;
    }
    int target =arr [left];
    int i = left;
    int j = right;
    while(i<j){
        //以左侧为基准开始排序,则必须右侧先开始移动指针,这样最后到达的位置是小于基准值的 方便基准值归位中间
        //右侧arr[j]>target,左侧arr[i]<=target,这样保证在基准值的左侧是小于等于,右侧是大于
        while(i<j && arr[j]>target){
            j--;
        }
        while(i<j && arr[i]<=target){
            i++;
        }
        if(i<j){
            int tmp = arr[i];
            arr[i]=arr[j];
            arr[j]=tmp;
        }
    }
    // 此时 指针i所指向的值一定是小于或等于 target的,交换target 和 arr[i],保证左侧均为小于或等于target
    arr[left]=arr[i];
    arr[i]=target;
    quickSort(arr,left,i-1);
    quickSort(arr,i+1,right);
}

相关文章

  • 快速排序

    快速排序Java实现

  • java排序方法资料

    java排序,效率高的是哪种排序方法 JAVA快速排序(高效) java中常用的几种排序算法 相关代码: /* *...

  • 数据结构&算法(一)

    一、Java实现快速排序算法 二、Java实现折半插入排序算法 三、Java实现冒泡排序算法

  • 面试知识点

    排序冒泡排序快速排序选择排序插入排序二路归并 查找二分查找 排序和查找的java实现 java语言Java字符串字...

  • 快速排序

    手写java版快速排序算法实现

  • 常见排序的java实现

    常见排序的java实现 常见排序java实现 插入排序(二分插入排序) 希尔排序 快速排序(三数中值快排) 冒泡排...

  • 排序

    Java 排序(这里统一做从小到大排) 快速排序 · 快速排序用分而治之的思想。对于要排序的数据,选取最左边的...

  • 排序

    八大排序算法 一、归并排序 递归及非递归的JAVA实现 二、快速排序 快排算法JAVA实现 三、堆排序 堆排序堆排...

  • 常用排序算法的Java实现

    冒泡、插入、选择、归并、快速排序的Java实现

  • 排序算法Java实现

    本文会通过Java语言实现:冒泡排序,插入排序,选择排序,归并排序,快速排序,桶排序,计数排序,基数排序,希尔排序...

网友评论

      本文标题:快速排序 Java

      本文链接:https://www.haomeiwen.com/subject/azmsjftx.html