演算法 利用隨機化演算法對順序表進行搜尋 原創技術

2021-06-06 13:40:14 字數 1034 閱讀 8058

隨機化演算法

實驗要求

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 前為產生...