/**
* 快速排序
* @author zhoujianghai
* zhoujiangbohai@163.com
*/
public class QuickSort {
/**
* @param args
*/
public static void main(String[] args) {
int data[] = {12,34,56,7,78,345,5,6,890};
System.out.print("排序前:");
for(int i : data) {
System.out.print(" "+i);
}
quickSort(data,0,data.length - 1);
System.out.println();
System.out.print("排序后:");
for(int i : data) {
System.out.print(" "+i);
}
}
public static void quickSort(int[] data, int low, int high) {
int i = low;
int j = high;
if(low < high) {
//key:作为比较的元素
int key = data[low];
// 从数组两端交替地向中间扫描;i从左边开始,j从右边开始
while (i < j) {
while (i < j && data[j] > key) {//从右边查找
j--;
}
if (i < j) {
//找到比key小的,移动到左边
data[i] = data[j];
i++;
}
while (i < j && data[i] < key) {//从左边查找
i++;
}
if (i < j) {
// 找到比key大的,移动到右边
data[j] = data[i];
j--;
}
}
//key移动到正确位置
data[i] = key;
// 前半部分递归排序
quickSort(data,low, i - 1);
// 后半部分递归排序
quickSort(data,i + 1,high);
}
}
}
分享到:
相关推荐
java中实现快速排序算法。随机产生几个数然后对其进行排序
java实现的快速排序算法
Java实现快速排序.rar
java实现快速排序的个人小结,虽然简单,还是可以看看的
(数据结构课程设计)使用java语言实现对于快速排序的演示,其中提供了暂停功能,控制图画运行速度功能,能较好的演示快速排序。
在Java实现中,快速排序算法通过quickSort方法接收待排序数组和左右索引作为参数,递归地调用partition方法进行数据划分,并分别对划分后的子序列进行排序。partition方法选择数组中的一个元素作为基准,通过比较和...
quickSort 方法实现了快速排序算法。通过选取一个基准值,将数组划分为左右两个子数组,并递归调用快速排序对子数组进行排序。在 partition 方法中,我们选择最右边的元素作为基准值,然后使用双指针进行比较和交换...
java 快速排序 折半查找的界面实现 (递归与分治法)
详细解释了快速排序的java实现.里面有代码,还有注释说明
快速排序 java实现
这是我自己写的java,快速排序法。以前在网上找了很久,都没有合适的,就自己写了个,希望大家有需要的能用到。呵呵呵
主要介绍了Java实现快速排序算法(Quicktsort),有需要的朋友可以参考一下
这是一个用Java语言实现的快速排序算法,快速排序算法是根据分冶思想去实现的。
主要介绍了java实现快速排序的方法,涉及java排序的相关操作技巧,需要的朋友可以参考下
java 快速排序实现。可以跑的代码 java 快速排序实现。可以跑的代码 java 快速排序实现。可以跑的代码 java 快速排序实现。可以跑的代码
今天小编就为大家分享一篇关于Java实现快速排序过程分析,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
实现合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序算法的java实现。