public class KuaiPai{
public static void quickSort(int[] nums,int begin,int end){
if (begin >= end)
return;
int i = begin;
int j = end;
int temp = nums[i];
//目的是为了将大于temp的值放在temp的右边,
//小于则放在temp的左边。
while(i < j){
//nums[j]数字大于temp值时,j往前移动,
//直到找到nums[j]的值小于temp值
while(i < j && nums[j] >= temp)
j--;
//找到则将当前num[i]的值换成当前nums[j]的值
nums[i] = nums[j];
//num[i]数字小于temp值时,i往后移动
//直到nums[i]的值大于temp值
while(i < j && nums[i] <= temp)
i++;
//找到则将当前num[j]的值换成当前nums[i]的值
nums[j] = nums[i];
}
//i=j时,将nums[i]置换成temp值
nums[i] = temp;
//temp的左边排序
quickSort(nums,begin,i-1);
//temp的右边排序
quickSort(nums,i+1,end);
}
public static void main(String[] args){
int nums[] = {2,4,10,9,6,8,3,1,7,5};
for(int i = 0;i < nums.length; i++){
System.out.print(nums[i]+" ")
}
}
}
快排-Java实现
最新推荐文章于 2024-06-26 01:07:42 发布