/**
* @author : xxj
* @date : 2012-7-24
* @time : 下午8:13:13
* @describe : 快速排序算法(JAVA)
*/
public class QuickSort {
public static int[] quickSort(int[] numbers){
if(numbers == null || numbers.length < 2){
return numbers;
}
int i = 0;
int j = numbers.length - 1;
int temp;
while(j != i){
for(int m = j; m <= j && m >= i ; m --){
j = m;
if(numbers[i] > numbers[m]){
temp = numbers[i];
numbers[i] = numbers[m];
numbers[m] = temp;
break;
}
}
if(i == j){
break;
}
for(int n = i; n >= i && n <= j; n ++){
i = n;
if(numbers[j] < numbers[n]){
temp = numbers[j];
numbers[j] = numbers[n];
numbers[n] = temp;
break;
}
}
}
int[] numbersLeft = new int[i];
for(int x = 0; x < i; x ++){
numbersLeft[x] = numbers[x];
}
numbersLeft = quickSort(numbersLeft);
for(int x = 0; x < i; x ++){
numbers[x] = numbersLeft[x];
}
int[] numbersRight = new int[numbers.length - i - 1];
for(int x = 0; x < numbers.length - i - 1; x ++){
numbersRight[x] = numbers[i + x + 1];
}
numbersRight = quickSort(numbersRight);
for(int x = i + 1; x < numbers.length; x ++){
numbers[x] = numbersRight[x - i - 1];
}
return numbers;
}
public static void main(String[] args) {
// printArray(quickSort(new int[]{49,38,65,97,76,13,27}));
printArray(quickSort(new int[]{429,318,625,197,176,213,327}));
}
public static void printArray(int[] numbers){
for(int i = 0; i < numbers.length; i ++){
System.out.print(numbers[i] + " ");
}
System.out.println("");
}
}
分享到:
相关推荐
冒泡排序、快速排序、直接插入排序、简单选择排序 等经典算法的思想介绍,大白话简单易懂。并用java实现。代码拿去即可用,不需做任何修改! 部分内容: /** * 快排:O(n*logn);如果是从小到大排序; * 思想:选...
用java实现了以下算法: 1、冒泡排序、冒泡排序的两种改进。 2、插入排序。 3、选择排序。 4、希尔排序。 5、归并排序。 6、快速排序。
java代码实现的排序算法(冒泡,快速,简单选择,堆排,直接插入,希尔,归并),代码本身的注释不多,主要注释的还是当前排序算法的一些特点,比如时间复杂度,空间复杂度,一趟排序后数列的特点。适合了解算法性质...
主要介绍了Java编程中快速排序算法的实现及相关算法优化,快速排序算法的最差时间复杂度为(n^2),最优时间复杂度为(nlog n),存在优化的空间,需要的朋友可以参考下
Java 实现的快速排序算法,小程序,练手用的。
支持任意类型数据的排序,采用5中排序算法冒泡排序,选择,插入,快速,堆排序。
## 九种内部排序算法的Java实现及其性能测试 ### 9种内部排序算法性能比较 第九种为java.util.Arrays.sort(改进的快速排序方法) 1. 100000的随机数据集 ![](http://7xlkoc.com1.z0.glb.clouddn.com/sort1.jpg) ...
JAVA几种常用的经典的排序算法 冒泡 选择 快速 shell 堆排序
三种排序算法比较,快速排序,桶排序,还有……排序
用ArrayList实现的排序算法,希望对有需要的同学有帮助,如有错误请指出。JDK版本为1.7
java排序算法汇总 将数据结构里的排序算法使用java实现 包括:归并 快速排序 直接选择 插入。。。。
我用java语言编写了《随机化快排和确定型快排》程序: 运行环境: 1.操作系统Windows XP Professional 2.编程工具MyEclipse 6.0 该程序可以自动创建Excel文件,用于保存数据,然后用Microsoft Excel软件自带的...
枚举排序、快速排序、归并排序的串行算法及对应的简单并行算法,java实现,可自由选择线程数。代码仅供参考。
快速排序算法java实现,此程序所排序数组在程序中给出,没有输入。
主要介绍了详解快速排序算法中的区间划分法及Java实现示例,文中分别介绍了快排时两种区间划分的思路,需要的朋友可以参考下
日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一...
讨论 了几种常见的内部排序算法及其时间复杂度: 插入排序、 起泡排序、 选择排序、 快速排 序、 希尔排序、 堆排序, 并且对这几种排序算法进行 了分析比较。着重提供 了希尔排序和堆 排序的实现程序, 以堆排序...
java中常见排序的所有demo,包含冒泡,选择,插入,快速,堆,希尔,二叉树等
java实现包括插入排序、冒泡排序和快速排序算法。可以对任何简单类型和任意对象进行排序,可以支持升序、降序等多种顺序要求。用面向对象的思想,多继承实现各种排序方法,代码简单易用,附带uml图解