排序方法是给堆栈溢出

时间:2018-01-27 23:55:07

标签: arrays sorting quicksort mergesort

我正在检查一个包含100,000个整数的数组以查看它们是否已排序,但我一直收到堆栈溢出错误。我已经在1000和10,000大小的数组上运行了这个代码,但是当我在100,000上尝试它时,我得到错误,通常是在索引84353附近。数组是否要检查? 要求该方法是递归的。

static boolean flgIsSorted(int[] arr) 
{
  boolean bool = true;
  int index = arr[0];
  int[] newArr = new int[arr.length-1];
  if(newArr.length > 0) 
  {
     for(int i = 1; i < newArr.length+1; i++)
     {
       newArr[i-1] = arr[i];
     }

     for(int i = 0; i < newArr.length; i++)
     {
         if(index <= newArr[i]) 
         {
          bool = true;
         }
         else 
         {
           bool = false;
           return bool; 
         }  
     }
  //prints what arr will be created next
     System.out.println(arr.length-1);
     flgIsSorted(newArr);

  }
  else {      }
  if(bool == false)
    return bool;

  return bool;

}

0 个答案:

没有答案