Advertisement

数据结构与算法分析 #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)

还没有任何评论哟~