求java快速排序的正确代码

如题所述

一趟快速怕序的具体做法是:附设两个指针low和high,他们的初值分别为low和high,设枢轴记录的关键字为privotkey,则首先从high所指位置向前搜索找到第一个关键字小于pivotkey的记录和枢轴记录互相交换,然后从low所指向的位置起向后搜索,找到第一个关键字大于privotkey的记录和枢轴记录互相交换,重复这两步直至low==high位置.

import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class 快速排序_1 {
public static void main(String[] args) throws InterruptedException {
int test[] = {15,23,56,7,13,52,20,7};
new 快速排序_1().qSort(test, 0, test.length-1);
for(int k:test) System.out.println(k);
}
public void qSort(int []array,int low,int high){
if(low
int privot=partition(array,low,high);
qSort(array,low,privot-1);
qSort(array,privot+1,high);
}
}
public int partition(int [] array,int low,int high){
/**
* 选择 low位置 作为曲轴(支点)
*/
int pivot=array[low];
int temp=0;
/**
* 如果 low
*/
while(low
/**
* 先从 high端 开始判断
*/
while(low=pivot) high--;
/**
* 进行 置换操作
*/
if(low
array[low]=array[high];
low++;
}
/**
* 从 low 端判断
*/
while(low
/**
* 进行 置换操作
*/
if(low
array[high]=array[low];
high--;
}
}
array[low]=pivot;
return low;
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-19
给你一种方法,我想你应该了解冒泡排序吧,这种方法是根据它改进的。因为冒泡排序前几次几乎相当于遍历整个数组了,所以我们先遍历一遍,把这些数分成两组,一组相对大的,和另一组小的,对这两组分别排序,最后合并。对数据很多的,还可以分更多组,这样会快一些。
第2个回答  2010-07-14
java中数组有一个叫SORT的函数,你直接调用其就可以实现排序。如果你要自己编写排序那就用起泡法吧

急啊!求一段关于java 的快速排序的代码
public class quickSort { public quickSort() { } public void printA(int[] a) { for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " ");} System.out.println();} public void chooseSort(int[] a, int left, int right) { int smallest;int flagIndex ...

求java快速排序的正确代码
import java.util.concurrent.Executors;public class 快速排序_1 { public static void main(String[] args) throws InterruptedException { int test[] = {15,23,56,7,13,52,20,7};new 快速排序_1().qSort(test, 0, test.length-1);for(int k:test) System.out.println(k);} public vo...

Java程序快速排序是怎样的,举个例子说明一下
int start,int end) { if(start<end) { int key=array[start];\/\/初始化保存基元 int i=start,j;\/\/初始化i,j for(j=start+1;j<=end;j++) if(array[j]<key) { \/\/如果此处元素小于基元

这个java写的快速排序 不知道哪里错了 求大神给看下!困扰好久了 一直死...
quicksort(a, 5, 15);

java编程实现随机数组的快速排序
java编程实现随机数组的快速排序步骤如下:1、打开Eclipse,新建一个Java工程,在此工程里新建一个Java类;2、在新建的类中声明一个产生随机数的Random变量,再声明一个10个长度的int型数组;3、将产生的随机数逐个放入到数组中;4、利用排序算法对随机数组进行排序。具体代码如下:import java.util....

java快速排序简单代码
递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序;2. 动图演示 代码实现 JavaScript 实例 function quickSort ( arr , left , right ) {     var len = arr. length ,        partitionIndex ,  ...

排序有哪几种方法?请列举。并用 JAVA 实现一个快速排序
快速排序 public class QuickSort { public static void main(String[] args) { int[] array = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3 };System.out.println("Before sort:");ArrayUtils.printArray(array);quickSort(array);System.out.println("After sort:");ArrayUti...

java快速排序代码中SwapReferences()方法是什么?代码怎么写?
\/** * 快速排序 *\/private static void quickSort ( int[] array, int start, int end ){if (start < end){int key = array[start];int i = start;for ( int j = start + 1; j < end + 1; j++ ){if (key > array[j]){int temp = array[j];array[j] = array[i + ...

举一个简单java快速排序的例子?
Java中的快速排序一个简单的例子 public class QuickSort { public static void sort(Comparable[] data, int low, int high) { \/\/ 枢纽元,一般以第一个元素为基准进行划分 Comparable pivotKey = data[low];\/\/ 进行扫描的指针i,j;i从左边开始,j从右边开始 int i = low;int j = high;if ...

排序都有哪几种方法?请列举。用JAVA实现一个快速排序。
【答案】:排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)快速排序的伪代码。\/ \/使用快速排序方法对a[ 0 :n- 1 ]排序 从a[ 0 :n- 1 ]中选择一个元素作为m i d d l e,该...

相似回答