面试必备-快速排序(Java)

来源:互联网 发布:荣威950 知乎 编辑:程序博客网 时间:2024/05/18 11:29

以s[l]为基准,从右向左比较,找到比它小的就放到s[i]

从左向右比较,找到比它大的就放到s[j],

当i==j时,退出循环,s[i]=x

时间复杂度是nlogn

public class quickSort { static void quickSortM(int[] s, int l, int r){if (l < r){int x = s[l];int i = l,j = r;while (i < j){while (i < j && s[j] >= x){j--;}if (i<j)s[i++] = s[j];while (i <j && s[i] < x){i++;}if (i<j){s[j--] = s[i];}}s[i] = x;quickSortM(s,l,i-1);quickSortM(s,i+1,r);}}public static void main(String[] args){int s[] = {72,92,3,88,43,100,56};quickSortM(s,0,s.length-1);int j;for (j=0;j<s.length;j++)System.out.println(s[j]);}}

0 0
原创粉丝点击