java吧 关注:1,247,615贴子:12,726,421
  • 0回复贴,共1

学生求助,快速排序法,内存溢出问题

只看楼主收藏回复

public class Test1 {
public int getMddlei(Integer[] list, int left, int right) {
int tmp = list[left];
while (left < right) {
while (left < right && list[right] > tmp) {
right--;
}
list[left] = list[right];
while (left < right && list[left] < tmp)
;
{
left++;
}
list[right] = list[left];
}
list[left] = tmp;
return left;
}
public void quickSort(Integer[] list, int left, int right) {
if (left < right) {
int middle = getMddlei(list, left, right);
quickSort(list, left, middle - 1);
quickSort(list, middle + 1, right);
}
}
public void quick(Integer[] str) {
if (str.length > 0) {
quickSort(str, 0, str.length - 1);
}
}
public static void main(String[] args) {
Integer[] aa = new Integer[20000];
for (int i = 0; i < aa.length; i++) {
aa[i] = i;
}
new Test1().quick(aa);
/* Runtime currRuntime = Runtime.getRuntime();
int nFreeMemory = (int) (currRuntime.freeMemory() / 1024 / 1024);
int nTotalMemory = (int) (currRuntime.totalMemory() / 1024 / 1024);
System.out.println(nFreeMemory + "M/" + nTotalMemory + "M(free/total)");*/
// ;
}


1楼2014-10-13 22:56回复