算法分析与设计实验报告
第八次实验
所需的平均时间为
的可能性。希望获得一个随机化算法
的每一个实例均有。
不输出数组数只输出结果比较:
附录:
完整代码(随机化算法)
Sherwood.cpp
//随机化算法线性时间选择输入预处理洗牌
#include"RandomNumber.h"
#include
#include
#include
using namespace std;
template
Type select(Type a[],int l,int r,int k); //声明选出要选择的元素的函数
template
Type select(Type a[],int n,int k);
template
void Shuffle(Type a[],int n);
template
inline void Swap(Type &a,Type &b);
void ran(int *input,int n) //随机生成数组元素函数{
int i;
srand(time(0));
for(i=0;i input[i]=rand()%100; //生成的数据在0~100之间input[i]='\0'; } int main() { int n; cout<<"输入元素个数:"; cin>>n; int *a=new int[n+1]; cout<<"原数组为:"< ran(a,n); //随机生成数组 for(int i=0; i { cout< } cout< Shuffle(a,n);//洗牌,将原有的输入进行随机洗牌 cout<<"洗牌后数组为:"< for(int i=0; i {