码迷,mamicode.com
首页 > 编程语言 > 详细

快速排序java实现

时间:2020-03-21 00:09:02      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:sys   递归   快速   左移   java实现   stat   一个   哨兵   static   

public class QuickSort {
public static void quickSort(int[] arr, int left, int right){
int temp;
int i = left;
int j = right;
if (left < right){
// temp存放哨兵
temp = arr[left];
while (i != j){
// 先从右扫描,只要比temp大j就向左移,直到找到一个比哨兵temp小的数
while (i < j && arr[j]>temp){ --j; }
if (i < j){
// 把该数放到temp左边
arr[i] = arr[j];
// i指针右移一位
i++;
}
// 再从左往右扫描,只要比temp小i就向右移,直到找到一个比哨兵temp大的数
while (i < j && arr[i] < temp){ ++i; }
if (i < j){
// 把该数放到temp右边
arr[j] = arr[i];
// j指针左移一位
j--;
}
}
// 将temp放在最终位置(把数组分成两部分了)
arr[i] = temp;
// 每一部分,分别再进行快速排序(依次递归实现)
quickSort(arr, left, i-1);
quickSort(arr, i+1, right);
}
}

public static void main(String[] args){
int[] arr = {4,6,7,1,2,3,5};
quickSort(arr, 0, arr.length-1);
for (int i=0; i<arr.length; i++){
System.out.print(arr[i]+" ");
}
}
}

快速排序java实现

标签:sys   递归   快速   左移   java实现   stat   一个   哨兵   static   

原文地址:https://www.cnblogs.com/cdlyy/p/12535695.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!