[英]Trying to solve array sorting problem with quicksort implementation
对于这个 leetcode 问题,我应该对一个整数数组进行排序。 我试过使用快速排序算法。 每次运行测试用例时,我的算法都会完全失败。 它只是以相同的顺序返回数组。 我不知道为什么我的算法失败了。
class Solution {
public int[] sortArray(int[] nums) {
int len = nums.length;
quicksort(nums, nums[0], nums[len-1]);
return nums;
}
public void quicksort(int[] nums, int low, int high) {
int i = low;
int j = high;
int middle = (low + high) / 2;
int pivot = nums[middle];
while(i <= j) {
while(nums[i] < pivot) {
i++;
}
while(nums[j] > pivot) {
j--;
}
if(i <= j) {
swap(nums, i, j);
i++;
j--;
}
}
if(low < j) {
quicksort(nums, low, j);
}
if(i < high) {
quicksort(nums, i, high);
}
}
public void swap(int[] nums, int i, int j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
没关系修好了。 改为quicksort(nums, 0, len-1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.