java中快速排序的算法举个例子

 我来答
漿糊的江湖
2012-03-25 · TA获得超过163个赞
知道小有建树答主
回答量:108
采纳率:0%
帮助的人:91.5万
展开全部
package person.test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;

/**
* class name: RapidSort
* description: Java快速排序法:数组和集合
* @author Jr
*
*/
public class RapidSort {
private Random ran = new Random(); // 声明一个全局变量ran,用来随机生成整数

/**
* method name: sortArray
* description: 对数组的快速排序,只能用于int[]类型的数组
* @return
*/
private void sortArray() {
int[] array = new int[10]; // 声明数组长度为10
for (int i = 0 ; i < array.length; i++) {
array[i] = ran.nextInt(10) + 1; // 数组赋值
}
Arrays.sort(array);
System.out.println(Arrays.toString(array));
}

/**
* method name: sortList
* description: 对集合的快速排序,可以用于List<Object>类型数组,
* 隐含意思就是对所有类型数组都适用
* @return
*/
private void sortList() {
List<Integer> list = new ArrayList<Integer>();
for (int i = 0 ; i < 10; i++) {
list.add(ran.nextInt(10) + 1); // 给集合赋10个值
}
Collections.sort(list);
System.out.println(list);
}

public static void main(String[] args) {
RapidSort rs = new RapidSort();
rs.sortArray();
rs.sortList();
}
}
东方箭
2012-03-24 · TA获得超过708个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:214万
展开全部
//快速排序(交换排序),不稳定,时间复杂度nlog2n,空间复杂度log2n
class QuickSort{

public static void quickSort(int[] array,int low,int high){
if(low>=high){ //递归出口
return;
}
int index=array[low]; //设置key进行划分
int i=low;
int j=high;
while(i<j){
while(i<j && index<array[j]){ //判断右边元素
j--;
}
array[i]=array[j];
while(i<j && index>array[i]){ //判断左边元素
i++;
}
array[j]=array[i];
}
array[i]=index;
quickSort(array, low, i-1); //进行递归
quickSort(array, i+1, high);
}

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
拉普拉斯妖007
2012-09-26 · TA获得超过371个赞
知道答主
回答量:101
采纳率:100%
帮助的人:30.8万
展开全部
public void quickSort(int left,int right,int a[])
{
int l=left;
int r=right;
int pivot=a[(l+r)/2];//转轴数
int temp=0;
while(l<r)
{
while(a[l]<pivot)l++;
while(a[r]>pivot)r--;

if(l>=r)break;

temp=a[l];
a[l]=a[r];
a[r]=temp;

if(a[l]==pivot)r--;
if(a[r]==pivot)l++;
}
if(l==r)
{
l++;
r--;
}
if(left<r)quickSort(left,r,a);
if(right>l)quickSort(l,right,a);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胡海学
2012-03-24 · 超过12用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:40.4万
展开全部
java希尔排序:
public class shellsort{
int [] a={15,24,25,68,12,10,45,18,27}
iint temp;
for(int k=a.length/2; k>0; k/=2)
{
for(int j=i; j>=k; j-=k)
{
if(a[j-k]<a[j])
{
temp=a[i];
a[j-k]=a[j];
a[j]=temp;
}
}
}
for(int i=0;i<a.length;i++)
{
System.out.println(a[i]+" ")
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pengyisenjava
2012-03-24
知道答主
回答量:22
采纳率:0%
帮助的人:19万
展开全部
一般都是 二分法 和冒泡
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式