java-快排(递归)-堆栈溢出-咋整
查看原帖
java-快排(递归)-堆栈溢出-咋整
350613
luguodeluoge楼主2020/8/14 12:28
	public static void main(String[] args)
	{
		// 主函数部分,随机建一个长度为输入数字的数组.输入一两千时没问题,到了一万就堆栈溢出
		Scanner sc=new Scanner(System.in);
		int get1=sc.nextInt();
		int [] arr= new int[get1];
		for(int i=0;i<get1;i++)
		{
			//arr[i]=sc.nextInt();
			arr[i]=(int) (Math.random()*100);
		}
		quickSort(arr, 0, arr.length-1);
		for(int i:arr)
		{
			System.out.print(i+" ");
		}

	}
//快排部分
private static void quickSort(int [] arr,int l,int r)
	{
		
		if(l>r)
		{
			return;
		}
		int i=l;//L,不是123
		int base=arr[l];		
		int j=r;
		while (i!=j)
		{
			while(arr[j]>=base&&i<j)
			{
				j--;
			}
			while (arr[i]<=base&&i<j)
			{
				i++;
			}
			int t=arr[i];
			arr[i]=arr[j];
			arr[j]=t;
		}
		arr[l]=arr[i];
		arr[i]=base;
		quickSort(arr, l, i-1);
		quickSort(arr, j+1, arr.length-1);
	}

java-快排(递归)-堆栈溢出-咋整

随机建一个长度为输入数字的数组.输入一两千时没问题,到了一万就堆栈溢出

哭惹

2020/8/14 12:28
加载中...