public class QuickSort {
public static void sort(Comparable[] data)
{
sort(data,0,data.length -1);
}
public static void sort(Comparable[] data, int low, int high)
{
Comparable pivot = data[low];
int i = low;
int j = high;
if(low < high)
{
while(i < j)
{
while(i < j && data[j].compareTo(pivot) >0)
{
j--;
}
if(i < j)
{
data[i] = data[j];
i++;
}
while(i < j && data[i].compareTo(pivot) < 0)
{
i++;
}
if(i < j)
{
data[j] = data[i];
j--;
}
}
}
data[i] = pivot; //将所选元素赋值
if(low < i-1)
sort(data,low,i-1);
if(i+1 < high)
sort(data,i+1,high);
}
public static void main(String[] args) {
Integer[] c = { 4, 9, 23, 1, 45, 27, 5, 2 };
QuickSort.sort(c);
for (Comparable data : c)
{
System.out.println(data);
}
}
}
分享到:
相关推荐
java 快速排序 折半查找的界面实现 (递归与分治法)
java 编写的快速排序程序递归形式我做的课堂作业,,希望能帮助大家。。。
快速排序的简单实现程序,java编制,迭代法对数据组分区,知道简单的java基础,基本就可以看懂这个小程序了
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语言编写的,主要实现的是对一串数据的快速排序,并统计其深度
快速排序的 Java 实现代码例子程序,需要的可以参考
自己写的几个排序方法的实现,其中快速排序需要做一些调整。希望对你有所帮助
设计一个负责排序的程序包,实现多种排序算法,至少包括插入排序、冒泡排序和快速排序算法。 要求: 1.可以对任何简单类型和任意对象进行排序 2.可以支持升序、降序、字典排序等多种顺序要求 3.可以随意增加排序算法...
这是一个java的排序界面小程序,包括对冒泡、堆、归并(改进)、快速(改进)、插入、归并、快速、选择、Shell等排序算法的实现
做了个Java Swing 图形界面,选择3中排序方法进行排序。工程用NetBeans 打开,运行Main.java文件或直接点击运行主程序,3种算法在源包中的sorts文件夹...QKSort.java(快速排序算法) SelectSort.java(简单选择排序)
将二分法查找和快速排序集合在JavaApplet中,其中快速排序给输出中间过程,适合初学者观看。有问题可以联系本人,欢迎。
各种排序算法的实现,桶排序,快速排序、归并排序、希尔排序等
最省时间的是确定型算法,其次是随机基准快速排序算法,最后是随机化输入快速排序算法;后面两个算法较之确定型算法要费时的原因是:(1)随机选取基准花费了一些时间,(2)随机化输入是将原来数组打乱花费了一些时间。...
java多线程排序源程序,三种排序算法。希尔排序,快速排序,堆排序。
设计一个负责排序的程序包,实现多种排序算法,至少包括插入排序、冒泡排序和快速排序算法。 要求: 1.可以对任何简单类型和任意对象进行排序 2.可以支持升序、降序、字典排序等多种顺序要求 3.可以随意增加排序算法...
几种内部排序算法的Java实现 各种内部排序方法的比较 直接插入排序 折半插入排序 希尔排序 起泡排序 快速排序 简单选择排序 树形选择排序 堆排序 归并排序 基数排序
一个算法设计与分析的实验报告,比较归并排序与快速排序的时间差异,这里采用在一个java程序中对随机生成的任意个数分别进行两种方法的排序并记录各自的时间,最后得出结论。 本实验报告附代码以及详细解释
Java 实现的快速排序算法,小程序,练手用的。
一个算法设计与分析的实验报告,比较归并排序与快速排序的时间差异,这里采用在一个java程序中对随机生成的任意个数分别进行两种方法的排序并记录各自的时间,最后得出结论。 本实验报告附代码以及详细解释
分治思想的排序包括:归并排序,快速排序,堆排序。 程序把随机生成的整数进行排序,开始时用1到7选择用哪种排序(没有图形界面,算法为主),堆排序较为特殊,见注释。 有问题到博客中该篇文章下欢迎反馈交流~