编程导航算法村 | 快速排序
快速排序
- 快速排序的的核心是分治法的思想
public static void queck(int[] nums, int start, int end) {
// 说明此时已经排序完成
if (start >= end) {
return;
}
//
int left = start;
int right = end;
int provid = nums[(left + right) / 2];
while (left <= right) {
// 找到比目标值大的左边
while (left <= right && nums[left] < provid) {
left++;
}
// 找到比目标值小的右边
while (left <= right && nums[right] > provid) {
right--;
}
// 进行移动
if (left <= right) {
int temp = nums[left];
nums[left] = nums[right];
nums[right] = temp;
left++;
right--;
}
}
queck(nums, start, right);
queck(nums, left, end);
}