快速排序的思想是通过方法第一次排序完成后,在调用本身的方法再次进行调用,这就是递归的思想。笔者这里给出一个数组int[] arr=new int[]{6,1,2,7,9,3,4,5,10,8},给左边设置i,右边设置j,目标数设置为最左边的6,从右边检索到左边找比目标数6小的数,第一次找到为5,i向右走,i++;在从右边检索到左边,找比目标数大的数,第一次找到为7,j向左走j--;再进行5和7的交换,当然这里需要注意,i和j都是数组的索引,因此i 代码如下: 运行结果: 欢迎分享,转载请注明来源:内存溢出public class Sort {
public static void main(String[] args) {
int arr[] = { 6, 1, 2, 7, 9, 3, 4, 5, 10, 8 };
Quicksort(arr, 0, arr.length - 1);
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1) {
System.out.print(arr[i]);
}else {
System.out.print(arr[i] + ",");
}
}
System.out.println("]");
}
public static void Quicksort(int arr[], int left, int right) {
if (left > right) {
return;
} else {
;
int i = left;
int j = right;
int base = arr[left];
while (i != j) {
while (arr[j] <= base && i < j) {
j--;
}
while (arr[i] >= base && i < j) {
i++;
}
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
arr[left] = arr[i];
arr[i] = base;
Quicksort(arr, left, i - 1);
Quicksort(arr, i + 1, right);
}
}
用JAVA完成快速排序
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
springboot中文文档
上一篇
2022-11-17
评论列表(0条)