快速排序用java实现

快速排序用java实现,第1张

快速排序用java实现

快速排序指的是从一个数组中选择一个数然后分别从数组的最左边和最右边进行遍历
左边如果发现比选中的数大的就停下来
右边如果发现比选中的小的就停下来
然后左右交换
下面代码细嗦

import java.util.Arrays;

public class Quicksort {
    public static void main(String[] args) {
    int[] arr = {-19,20,0,-4,-4,26,33,-7};
 sort(arr,0,arr.length-1);
        System.out.println(Arrays.toString(arr));
    }
    //这部分来细嗦一下  
    //传入最left跟right是为了方便递归
    public static void sort(int[] arr,int left, int right){
        int l=left;
        int r=right;
        int mind=arr[ (l+r)/2];
        int temp=0;
        while(lmind){
                r=r-1;
            }
            if(l>=r){
                break;
            }
            //这部分是为了把上面找到的两个数放到正确的位置
            temp=arr[l];
            arr[l]=arr[r];
            arr[r]=temp;

            if(arr[l] == mind){
                l++;
            }
            if(arr[r]==mind) {
                r--;
            }
        }
 
        if(l==r){
            l=l+1;
            r=r-1;
        }
        //下面两个是向左递归跟向右递归
        if(leftl){
            sort(arr, l, right);
}
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5672976.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存