主要思想:隨機生成乙個陣列a,將陣列 a 排序後,排序後的陣列中的資料在原來陣列中的位置所組成的乙個序列即為1 到 n 的乙個隨機排列
原始碼:
#include"iostream"
#include"ctime"
#include"cstdlib"
#define max 20000
using namespace std;
struct element;
int cmp(const void *a,const void *b); //公升序排列
void rand_of_n(int a,int n); //產生 1-n 的隨機排列並存到 a 中
int main()
void rand_of_n(int a,int n){
int i;
struct element ele[max];
srand((int)time(0)); // 初始化隨機數種子
for(i=0;i
生成1 n的排列
摘自 演算法競賽入門經典 按字典序生成1 n的全排列。偽 void print permutation 序列a,集合s if s為空 輸出序列a else 按從小到大的順序依次考慮s的每個元素v print permutation 在a的末尾新增v後得到的新序列,s void print permu...
生成1 n的全排列
一 不可重集 includeusing namespace std const int maxn 1000 5 void print n int n,int a,int cur a是儲存全排列的陣列,cur是插入的位置 if cur n for int i 0 i 二 可重集 可重集排列注意如果陣列...
演算法 生成1 n的排列
在暴力求解法中,我們常常要用上列舉一些簡單內容以便方便獲得解,若要輸出整數n的前n個整數的全排列,則按字典序輸出為 1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 從中我們似乎發現了一些規律 先輸出以1開頭的排列,再輸出以2開頭的排列,然後是3 而在以1開頭的排列中,1的後一...