public class QuickSort {
/**
* 快排序
* @param data 待排序数组
* @param startIndex 开始排序元素的索引
* @param endIndex 结束排序元素的索引
*/
public static void sort(Comparable[] data, int startIndex, int endIndex) {
if (startIndex < endIndex) {
int middleIndex = partition(data, startIndex, endIndex);
sort(data, startIndex, middleIndex - 1);
sort(data, middleIndex + 1, endIndex);
}
}
public static void sort(Comparable[] data) {
sort(data, 0, data.length - 1);
}
public static void sort(Comparable[] data, int startIndex) {
sort(data, startIndex, data.length - 1);
}
private static int partition(Comparable[] data, int startIndex, int endIndex) {
Comparable pivotElement = data[endIndex];
int i = startIndex - 1;
for (int j = startIndex; j < endIndex; j++) {
if (data[j].compareTo(pivotElement) < 0) {
swap(data, ++i, j);
}
}
swap(data, ++i, endIndex);
return i;
}
private static void swap(Comparable[] data, int i, int j) {
Comparable tmp = data[i];
data[i] = data[j];
data[j] = tmp;
}
分享到:
相关推荐
快速排序QuickSort.java
快速排序算法的Java实现。下载后把Package信息稍作修改即可运行。
快速排序算法java实现,此程序所排序数组在程序中给出,没有输入。
采用java语言实现的排序排序,通俗易懂。
下面小编就为大家带来一篇Java快速排序QuickSort(实例)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,...
public static void quicksort(int[] array,int start, int end){ if(start>=end) return; int middle=partition(array,start,end); quicksort(array,start,middle-1); quicksort(array,middle+1,end); ...
快速排序方法...给新手一点指引,内置快速排序方法,有详细解析的链接地址,免费的
在Java实现中,快速排序算法通过quickSort方法接收待排序数组和左右索引作为参数,递归地调用partition方法进行数据划分,并分别对划分后的子序列进行排序。partition方法选择数组中的一个元素作为基准,通过比较和...
主要介绍了Java 快速排序(QuickSort)原理及实现代码,有需要的朋友可以参考一下
用java实现的常用排序,都可以编译运行。 包括shellSort, quickSort, mergeSort, heapSort
主要介绍了Java中实现quickSort快速排序算法的方法,文章最后还介绍了一种单向扫描的实现方法,需要的朋友可以参考下
quickSort 方法实现了快速排序算法。通过选取一个基准值,将数组划分为左右两个子数组,并递归调用快速排序对子数组进行排序。在 partition 方法中,我们选择最右边的元素作为基准值,然后使用双指针进行比较和交换...
一个小型 Java 项目,用于实现 Quicksort 的就地版本。 要使用代码,您需要使用快速排序功能。 该函数采用三个参数,一个 T 类项的 List,一个最左边元素索引的 int(通常为 0),以及最右边元素的索引(通常为数组...
快速排序 QuickSort的实现
该资源是一个快速排序的算法,很实用。开发语言是java,希望对大家有帮助。
java写的八大经典排序算法(win7 jdk 1.6 下运行) 冒泡排序 BubbleSort 堆排序 HeapSort ...快速排序 QuickSort 归并排序 MergeSort 基数排序 BucketSort 简单选择排序 SelectSort 希尔排序 ShellSort
用java实现了快速排序算法
用Eclipse开发工具写的java,快速排序算法,被排序的数组是写死的,不过使用者可以更改被排序的数组
本课程设计设计了一个快速排序的算法,该程序具有简单的排序功能。本程序采用了IntelliJ IDEA作为软件开发环境,采用了QuickSort核心算法来实现了对一些整数类型或字符类型的排序功能,操作简单,界面清晰,易于为...