隨機化演算法
實驗要求
1. 理解計算機隨機數的產生;
2. 理解隨機化演算法原理及一般應用;
3. 程式設計實現典型隨機演算法,理解演算法思想,並對演算法進行驗證分析。
實驗內容
利用隨機化演算法對順序表進行搜尋:
l 隨機抽取有序表元素;
l 從最接近待查元素開始搜尋。
實驗結果
定義乙個60000個元素的陣列,元素值依次為2,4,6…120000。
隨機抽取300次,根據抽取的元素就近查詢某數是否存在。
輸入元素為待查詢整數,結果為元素下標位置(從0開始)。
示例輸入:
示例輸出:
-1示例輸入:
示例輸出:
源**:
//科目:演算法實驗
//題目:利用隨機化演算法對順序表進行搜尋:
//隨機抽取有序表元素;
//從最接近待查元素開始搜尋。
//語言:c語言
#include
#include#define m 60000
long m[60000];
long n[60000];
int suiji[300];
int search(int result)
//對suiji[300]陣列的隨機值進行氣泡排序
for(k=0;k<=299;k++)
} //根據suiji陣列的值將相應的x陣列中的值存在y陣列中 for(k=0;k<300;k++)
min=(int)fabs(n[0]-result); //求result與抽取陣列中的元素之差的絕對值
address=0;
for(k=0;k120000||search_num%2==1)
else
return 0;}
更多詳細內容::::去學習
隨機化演算法
隨機化演算法的主要目的是希望讓隨機發生在演算法上,而不是發生在輸入分布上,這樣的話,沒有特別的輸入會引起我們的演算法的最壞情況。即使你最壞的敵人也無法產生最壞的輸入陣列。因為隨機排列使得輸入次序不再相關。只有在隨機數生成器產生乙個不走運的排列時,隨機演算法才會執行得很差。一.隨機優先順序陣列法 我們...
隨機化演算法基礎
隨機化演算法在分析某些涉及概率分析的問題上具有重要意義,因為輸入的分布是我們不能預知的,我們想讓分析的問題達到乙個平均的狀態,就得依靠隨機化,把輸入分布重新排列,使之成為乙個脫離其他外界因數的排列,同時要保證出現這個排列的概率為1 n 下面,有兩個常用的演算法來實現輸入分布的隨機化,以給定的輸入陣列...
c語言 隨機化演算法
srand unsigned int time null 若不隨機則生成的都為1 相同值 做產生隨機數的種子 x double rand rand max rand 後若為 則是隨機生成0 1之間的數 若為 則是生成0 rand max之間的數 rand max為最大值32767 rand 前為產生...