Loading...

java .net

随机快速排序算法

随机快速排序算法:
还没怎么整明白,有点晕
Java语言:
import java.util.*;
public class Test {


    int[] x = {3,7,5,6,4,9,8,1};
    int comps = 0;
    void quicksort(int l, int u)
    {
        int i, m;
        if (l >= u) return;
        swap(l, getRandom(l, u));
        m = l;
       
        comps += u - 1;
        for (i = l+1; i <= u; i++){
            //comps++;
            if (x[i] < x[l])
                swap(++m, i);
        }
        swap(l, m);
        quicksort(l, m-1);
        quicksort(m+1, u);
    }
   
    void swap(int a,int b){
        int temp = x[a];
        x[a] = x[b];
        x[b] = temp;
    }
   
    int getRandom(int min,int max){ 
          return (int)(Math.random()*(max-min+1)) + min;
          //Math.round(Math.random()*(Max-Min)+Min);
    }
   
    public static void main(String[] args) {
        Test t = new Test();
        System.out.println(Arrays.toString(t.x));
        t.quicksort(0,t.x.length - 1);
        System.out.println(t.comps);
        System.out.println(Arrays.toString(t.x));
    }
   

}


posted on 2008-10-23 17:24 阅读(1723) 评论(4)  编辑  收藏 所属分类: 学习java算法

评论

# re: 随机快速排序算法 2008-12-15 14:21 秦青

3168  回复  更多评论   

# re: 随机快速排序算法 2008-12-15 15:51

3168啥意思  回复  更多评论   

# re: 随机快速排序算法 2009-01-21 10:37 kj

其实也不是很快嘛~ 还比不上 O(n) 的排序算法  回复  更多评论   

# re: 随机快速排序算法 2013-12-10 08:52 张权

这里有个随机排序算法,效率很高,不过是用C#写的,但是这不影响算法思想
http://www.aspnetblog.cn/p/1.html  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 

公告

希望有一天

我能用鼠标双击我的钱包

然后选中一张100元

按住“ctrl+c”

接着不停的“ctrl+v”

嘻嘻~~~笑醒~~~



导航

<2013年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

统计

常用链接

留言簿(6)

随笔分类(102)

随笔档案(398)

文章分类

文章档案(10)

有趣网络

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜