快速排序

注意一下: 必须要用key存下num[(l+r)>>1]的值,因为在里面会变动
import java.math.*;
import java.util.*;
public class Main {
	public static HashMap<String,Long> map = new HashMap<>();
    public static void main(String args[])
    {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        int fx[] = new int[n];
        int N=n,x;
        for(int i=0;i<n;i++)
        {
              fx[i] = input.nextInt();
        }
        	QuickSort(fx,0,fx.length-1);
        	for(int i=0;i<n;i++)
        		System.out.print(fx[i]+" ");
    }
    public static void QuickSort(int num[],int l, int r)
    {
        int key = num[(l+r)>>1],i=l,j=r,temp=0;
        while(i<=j){
            while(num[i]<key)
                i++;
            while(num[j]>key)
                j--;
            if(i<=j)
            {
                temp = num[i];
                num[i] = num[j];
                num[j] = temp;
                i++;
                j--;
            }
        }
        if(i<r) QuickSort(num,i,r);
        if(j>l) QuickSort(num,l,j);
    }
}


全部评论

相关推荐

牛客618272644号:佬携程工作怎么样,强度大吗
点赞 评论 收藏
分享
粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
2 收藏 评论
分享
牛客网
牛客企业服务