求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快速排序的正确代码
一趟快速怕序的具体做法是:附设两个指针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;
}
}2010-07-14
给你一种方法,我想你应该了解冒泡排序吧,这种方法是根据它改进的。因为冒泡排序前几次几乎相当于遍历整个数组了,所以我们先遍历一遍,把这些数分成两组,一组相对大的,和另一组小的,对这两组分别排序,最后合并。对数据很多的,还可以分更多组,这样会快一些。2010-07-14
java中数组有一个叫SORT的函数,你直接调用其就可以实现排序。如果你要自己编写排序那就用起泡法吧2010-07-14
mengvlog 阅读 10 次 更新于 2025-06-20 00:58:54 我来答关注问题0
  • 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...

  • 以下是快速排序算法:快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率...

  •  zh857872 写一个程序,十个数字的数组排序,要用快速排序quicksort的方法,不要复制粘贴

    import java.util.Arrays;/ author zhouhui version 1.00 Since Otc 8, 2013 / public class FastSort { / param args / public static void main(String[] args){ int a[] = new int[]{6,3,9,1,8,2,4,10,7,5};System.out.println("快速排序前:");for(Integer i : a){ Sy...

  •  湖北倍领科技 实现对数组"int a[]={********}"进行从小到大的排序,并在控制台窗口输出排完序的结果。java编程

    首先,定义一个数组,例如:int[] array = {5, 9, 11, 2, 15, 34, 8, 6};接下来,使用冒泡排序算法实现对数组的排序。冒泡排序的基本思想是通过不断比较相邻的两个元素,如果它们的顺序错误,则交换它们的位置,直到整个数组有序。具体实现如下:for (int i = 0; i < array.length; i+...

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

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部