黑马程序员技术交流社区

标题: 关于快速排序导致堆栈溢出的问题 [打印本页]

作者: 黑马不黑    时间: 2014-1-13 10:21
标题: 关于快速排序导致堆栈溢出的问题
  1. 01.class QuickSort

  2. 02.{

  3. 03. public int patition(int low,int high,int arr[])

  4. 04. {

  5. 05. int start=arr[low];

  6. 06. while(low<high)

  7. 07. {

  8. 08. while(low<high&&arr[high]>start)high--;

  9. 09. if(low<high){arr[low]=arr[high];low++;}

  10. 10. while(low<high&&arr[low]<start)low++;

  11. 11. if(low<high){arr[high]=arr[low];high--;}

  12. 12. }

  13. 13. arr[low]=start;

  14. 14. return low;

  15. 15. }

  16. 16.

  17. 17. public void sort(int low,int high,int arr[])

  18. 18. {

  19. 19.

  20. 20. if(low<high)

  21. 21. {

  22. 22. int h=patition(0,arr.length-1,arr);

  23. 23. sort(0,h-1,arr);

  24. 24. sort(h+1,arr.length-1,arr);

  25. 25. }

  26. 26. }

  27. 27.}
复制代码
执行的时候老出现
Exception in thread "main" java.lang.StackOverflowError   
at com.sort.QuickSort.sort(Sort.java:65)
at com.sort.QuickSort.sort(Sort.java:67)这个错误提示,当数组小的是还行,稍微大点就出现错误,求大神指点迷津






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2