題目:
假設有乙個陣列,裡面有10個元素 int a[10]=。請寫乙個演算法,得到a陣列的乙個隨機排列。要求時間複雜度盡量小,可以使用random函式。例如輸出的隨機序列可以是:3 6 2 4 5 1 9 8 0
思路:1.將最大值max設定為9,在0~max之間產生乙個隨機數;
2.將陣列a的max下標的值和產生下標的值互換,同時max--;
3.重複步驟1,2直到max==0停止迴圈,最後a中的數為原來數的隨機排列。
**如下:
#include#includeusing
namespace
std;
//定義交換陣列元素函式
void ss(int a,int x,int
len)}//
陣列隨機排列的實現
int* ***n(int a,int
length)
returna;}
intmain()
;
int *b=***n(a,10
);
for(int i=0;i<10;i++)
}
Android Java隨機序列
public class nrandom random random new random for int i 0 i no i random null return sequence param array 被檢索的資料來源 param key 檢索的資料 return public static...
隨機序列產生演算法
題目 已經提供乙個int rand int n 的隨機數生成函式用來生成 0,n 的隨機數,求編寫演算法生成1至n的隨機序列,要求該序列包含不重複的1 n數字。include include include using namespace std 首先,建立乙個長度為n的陣列array,初始值是0 ...
隨機序列常用演算法
include include include include include include include using namespace std author marco date 2018 4 21 aim 序列隨機化的常用兩種演算法 1.什麼是隨機化的序列 得到該序列的概率是1 n 錯誤的...