快速排序-java实现
2016-11-24 10:20
169 查看
/**
* 快速排序: 定义数组的第一个元素为基准元素,进行所有元素的比较,比较一趟的情况是比基准数小的在左边,比基准数大的在右边.重复比较
* 不稳定排序
*/
public class QuickSort {
public void quickSort(int[] array, int left, int right) {
if (left >= right)
return;
int base = array[left];// 基准数
int low = left;
int high = right;
while (low < high) {// 从两端开始遍历
// 从高位向低位遍历,发现比基准大的,高位向左移动
while (low < high && base <= array[high]) {
high--;
}
// 跳出循环,说明遇到到比基准数小的数据,则将高位元素赋值到低位
array[low] = array[high];
// 从低位向高位遍历,比基准数大的就往后遍历
while (low < high && base >= array[low]) {
low++;
}
// 跳出说明遇到比基准数大的,
array[high] = array[low];
}
array[low] = base;
quickSort(array, left, low - 1);
quickSort(array, low + 1, right);
}
public static void main(String[] args) {
int[] array = { 18, 6, 98, 5, 48, 7, 2, 0, -1, 7,32, 6, 10 };
PrintUtil.print("快速排序");
PrintUtil.printArray(array, PrintUtil.HORIZONTAL);
QuickSort quickSort = new QuickSort();
quickSort.quickSort(array, 0, array.length - 1);
PrintUtil.printArray(array, PrintUtil.HORIZONTAL);
}
}
相关文章推荐
- 快速排序的JAVA实现
- JAVA排序算法实现代码-快速(Quick Sort)排序
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- java实现快速排序
- Java实现快速排序
- Java实现快速排序、归并排序、堆排序
- java实现的冒泡、选择、快速排序
- java实现快速排序
- 快速排序java实现
- 4、 排序有哪几种方法?请列举。并用JAVA实现一个快速排序.
- Java下实现快速排序
- Java实现排序(快速排序、冒泡排序、选择排序、基数排序、插入排序)
- 算法-快速排序-java实现
- Java分别实现冒泡排序、插入排序、快速排序、选择排序、交换排序
- 排序算法复习(Java实现)(二): 插入,冒泡,选择,Shell,快速排序
- 快速排序方法Java实现与分析
- 快速排序JAVA实现
- Java 常用排序算法实现--快速排序、插入排序、选择、冒泡
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,快速排序
- java(Merge) 实现归并排序,快速排序