快速排序
基本介绍图示代码
基本介绍
是对冒泡排序的一种改进 通过一趟排序将要排序的数据分割成独立的两部分, 其中一部分的所有数据都比另外一部分的所有数据都要小, 然后再按此方法对这两部分数据分别进行快速排序, 整个排序过程可以递归进行,以此达到整个数据变成有序序列
图示
代码
public class QuickSort {
public static void main(String
[] args
) {
int[] arr
= {-9,78,0,23,-567,70};
quickSort(arr
,0,arr
.length
-1);
System
.out
.println("排序:" + Arrays
.toString(arr
));
}
public static void quickSort(int[] arr
,int left
,int right
){
int l
= left
;
int r
= right
;
int pivot
= arr
[left
];
int temp
= 0;
while (l
< r
){
while (arr
[l
] < pivot
){
l
+= 1;
}
while (arr
[r
] > pivot
){
r
-= 1;
}
if (l
>= r
){
break;
}
temp
= arr
[l
];
arr
[l
] = arr
[r
];
arr
[r
] = temp
;
if (arr
[l
] == pivot
){
r
-= 1;
}
if (arr
[r
] == pivot
){
l
+= 1;
}
if (l
== r
){
l
+= 1;
r
-= 1;
}
if (left
< r
){
quickSort(arr
,left
,r
);
}
if (right
> l
){
quickSort(arr
,l
,right
);
}
}
}
}
【结果】
转载请注明原文地址:https://blackberry.8miu.com/read-584.html