数据结构与算法分析 #2.7 随机置换 #2.9 求幂的算法及霍纳法则是指秦九韶法
发布时间
阅读量:
阅读量
问题描述与分析
若需生成前N个自然数的随机排列,例如{4,3,1,5,2}与{3,1,4,2,5}均为有效排列,而{5,4,1,2,1}则不合法,因其包含重复的数字1且缺少数字3。此类程序在模拟多种算法时具有广泛应用。我们假定存在一种随机数生成函数RandInt(i,j),其能够等概率地输出i到j之间的任意整数。
//生成前N个自然数的一个随机置换。比较下列三种算法的效率
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#define CONTAINER 2000000
//#define DEBUG 1
int RandInt(int leftborder, int rightborder);//产生随机数x,leftborder<=x<=rightborder
void Algorithm_pow_N_1(int array[], int n);//第一个算法,运行时间=O(N²logN), 传入数组、数组长度
void Algorithm_pow_N_2(int array[], int n);//第二个算法,运行时间=O(NlogN), 传入数组、数组长度
全部评论 (0)
还没有任何评论哟~
