常用排序算法之快速排序


快速排序

1、這里引用一下趙堅、姜梅主編的《數據結構(C語言版)》中的快速排序原理和過程。




2、代碼實現

package baohuajie.sort;

import java.util.Arrays;
public class QuickSort {
public static void quickSort(int[] array, int left, int right) {
int i = left;
int j = right;
int temp = 0;
int time=0;
if (left < right) {
temp = array[left];
while (i != j) {
while (j > i && array[j] >= temp) {
j--;
}
if (j > i) {
array[i] = array[j];
i++;
}
while (j > i && array[i] <= temp) {
i++;
}
if (j > i) {
array[j] = array[i];
j--;
}
}
array[i] = temp;
System.out.println("第"+time+"次排序結果:" + Arrays.toString(array));
time++;
quickSort(array, left, i - 1);
quickSort(array, i + 1, right);
}
}
public static void main(String[] args) {
// int[] array = { 52, 38, 47, 24, 69, 05, 17, 38 };
int[] array = { 24, 3, 52, 38};
quickSort(array, 0, array.length - 1);
System.out.println("最終排序結果:" + Arrays.toString(array));
}
}

3、遞歸的使用

遞歸函數結束的條件:遞歸函數一定有一條分支不調用自身

【上一篇】常用排序算法之冒泡排序

【下一篇】常用排序算法之歸並排序



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com