文章目录
- 算法思想
- 算法图解
- 代码实现
- 快排特点及性能
- 算法思想
快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另一部分的所有数据要小,再按这种方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,使整个数据变成有序序列
- 算法图解
int[] array = {25,100,9,20,1,8};
- 代码实现
代码:
public class QuickSort {
private int[] array;
public QuickSort(int[] array){
this.array = array;
}
public void sort() {
quickSort(array,0,array.length-1);
}
public void print() {
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
public void quickSort(int[] array,int left,int right) {
if(left<right){
int Povit = array[left];
int L = left;
int R = right;
while(L<R){
while(L < R && array[R]>Povit){
R--;
}
if(L < R) {
array[L] = array[R];
L++;
}
while(L < R && array[L] < Povit){
L++;
}
if(L < R){
array[R] = array[L];
R--;
}
}
array[R] = Povit;
quickSort(array,left,R-1);
quickSort(array,R+1,right);
}
}
}
class SortTest {
public static void main(String[] args) {
testQuickSort();
}
/**
* 快速排序
*/
private static void testQuickSort() {
int[] array = {25,100,9,20,1,8};
QuickSort quickSort = new QuickSort(array);
quickSort.sort();
quickSort.print();
}
}
结果:
- 快排特点及性能