算法/排序算法/RandomQuickSort随机快速排序
来源:互联网 发布:多开同步器软件 编辑:程序博客网 时间:2024/06/05 18:25
随机快速排序与快速排序的关系非常简单,就在于 key 的选择,快速排序默认 key 为一组数据的第一个数,随机快速排序则是随机选择一个数。
两种排序的平均时间复杂度均为O(nlgn),最坏情况时间可达到O(n^2):当要排序的数据基本有序的时候,而随机快速排序大大降低了最坏情况出现的几率,提高了运行效率。
涉及快排的部分可以参考 快速排序
public class RandomQuickSort { private final static int MAX_NUM = 10; public static void main(String args[]) { int[] array = new int[MAX_NUM]; Scanner scanner = new Scanner(System.in); for (int i = 0; i < array.length; i++) { array[i] = scanner.nextInt(); } for (int i : array) { System.out.print(i + " "); } System.out.println(); int low = 0; int high = array.length - 1; RandomQuickSort tQS = new RandomQuickSort(); tQS.randomQuickSort(array, low, high); for (int i : array) { System.out.print(i + " "); } } private int randomNum(int min, int max) { if (max == min) return min; Random random = new Random(); return random.nextInt(max) % (max - min + 1) + min; } private void randomQuickSort(int[] array, int low, int high) { int r = randomNum(low, high); int temp = array[r]; array[r] = array[low]; array[low] = temp; new QuickSort().quickSort(array, low, high); }}
0 0
- 算法/排序算法/RandomQuickSort随机快速排序
- 随机的快速排序算法
- 快速排序-Java-随机算法
- 【算法设计-快速排序】随机快速排序算法
- 排序算法_快速排序、随机快速排序
- 算法导论笔记之----随机快速排序
- 《算法之美》---快速排序(随机快速排序)
- 算法导论 第七章快速排序与随机快速排序
- 算法导论 第七章快速排序与随机快速排序
- 算法导论 第七章快速排序与随机快速排序
- 快速排序 与 随机快速排序 算法分析
- 排序算法--交换排序(冒泡排序、快速排序、随机快速排序)java实现
- 排序算法--快速排序
- 排序算法--快速排序
- 排序算法---快速排序
- 排序算法-快速排序
- 排序算法------快速排序
- 排序算法---快速排序
- PHP7 操作MongoDB
- 第五届省赛题 Metric Matrice
- Bmob实现登陆注册,解决官方signUp与Success方法更新后出错问题
- Integer和int的种种比较
- 范数
- 算法/排序算法/RandomQuickSort随机快速排序
- Android官方提供的支持不同屏幕大小的全部方法
- css字体大小设置em与rem的区别
- 数据库实践三:再也不想经历的配环境体验
- Linux学习第五单元-使用逻辑卷管理器管理灵活存储
- HTML5触摸事件(touchstart、touchmove和touchend)
- applicationid和包名的区别
- Jmeter内存溢出因素与处理方式记录
- AC自动机,Tarjan(ZOJ 3784,String of Infinity)