#include#includeusing namespace std;void swap(int*a, int *b){ int *c = a; a = b; b = c;}int Partition(int *A, int p, int r){ int x = A[r];...
分类:
编程语言 时间:
2015-04-03 22:12:46
阅读次数:
127
快速排序在最坏情况下的复杂度较高,采取随机化算法选择每次的分割点,能够在一定程度上使每次划分的平衡性更好。
//
// main.cpp
// eoj1807
//
// Created by Fangpin on 15/3/15.
// Copyright (c) 2015年 FangPin. All rights reserved.
//
#include
#include
#...
分类:
编程语言 时间:
2015-03-15 16:54:45
阅读次数:
147
以下摘自网络 随机化快排:快速排序的最坏情况基于每次划分对主元的选择。基本的快速排序选取第一个元素作为主元。这样在数组已经有序的情况下,每次划分将得到最坏的结果。一种比较常见的优化方法是随机化算法,即随机选取一个元素作为主元。这种情况下虽然最坏情况仍然是O(n^2),但最坏情况不再依赖于输入数据,而...
分类:
编程语言 时间:
2015-02-10 10:33:02
阅读次数:
257
快速排序的随机化版本并不是一种全新的排序算法,而是在快速排序的基础上加入随机化的因素,因素,因而仍然将其作为第四种方法(快速排序)的一种补充。
为什么要提出快速排序的随机化版本,主要是对于快速排序法其划分情况的好坏会直接影响排序的效率,而且,快速排序的平均性能较好,所以,加入随机化成分,可以使该算法对于所有输入均能获得较好的平均情况性能。...
分类:
其他好文 时间:
2014-06-05 03:30:11
阅读次数:
225