美文网首页
记一次stackoverflow

记一次stackoverflow

作者: salix_ | 来源:发表于2020-04-08 14:22 被阅读0次

人家都是做项目的时候出现了stackoverflow,我是刷题的时候。。。
下午过排序的时候,用java写快排,洛谷给了RE,我以为是数组越界,搞了半天,结果是虚拟机栈爆了,递归层数太多。
洛谷1177

import java.util.*;
public class Main {
    static int maxn=5000005;
    static int a[]=new int[maxn];
    static Scanner in=new Scanner(System.in);
    public static void main(String[] args) {
        int n=in.nextInt();
        for(int i=1;i<=n;i++) a[i]=in.nextInt();
        qsort(a,1,n);
        for(int i=1;i<=n-1;i++) System.out.print(a[i]+" ");
        System.out.println(a[n]);
    }
    public static void qsort(int a[],int l, int r){
        if(l>=r) return;
        int i=l,j=r,temp=a[l];
        while(i<j){
            while(i<j&&a[j]>=temp) j--;
            if(i<j) a[i]=a[j];
            while(i<j&&a[i]<=temp) i++;
            if(i<j)a [j]=a[i];
        }
        a[i]=temp;
        qsort(a,l,i-1);
        qsort(a,i+1,r);
    }
}

相关文章

网友评论

      本文标题:记一次stackoverflow

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