統計求最大 最小元素的平均比較次數

2022-07-01 20:06:09 字數 652 閱讀 3526

#include#include#include#define nmax 10 

int rando(int a,int n)

else{

if(a[i]標頭檔案

2.公式:rand()%(大-小+1)+小,如隨機10~20的數,即rand()%11+1

3.使用時必須搭配 srand函式

srand函式作用:隨機數初始化函式

若將srand()括號中的數設為定值,那麼這次出現的隨機數與下次出現的隨機數一樣

如 srand(1); 隨機三個數,這次隨機出來的是 8,9 ,10 那麼下次執行隨機出來的也是8,9,10

所以我們要將srand括號裡的引數設為一直變化的值,比如時間

4.獲取時間的方法:

1.引入標頭檔案 #include2.使用函式 time(null);

5.配合srand使用:

因為time(null)函式傳回來的是時間型別的引數,所以我們把它變為無型別的 ,(unsigned)time(null)

即srand((unsigned)time(null));

問題目標:隨機產生10個數字,找出其中最大和最小元素並統計平均比較次數

選擇的資料結構:陣列

演算法策略:選擇排序

求棧的最小元素或者佇列的最大元素

如果每次直接遍歷棧獲得最小元素,效率太低,而且時間複雜度也低,可以採用輔助棧,保持最小元素一直在棧頂,這樣獲取最小值就可以直接拿到。思想 定義乙個輔助棧,如果要插入的元素小於輔助棧棧頂的值則直接入棧,如果不是,則輔助棧插入的是輔助棧棧頂的值 棧中最小元素 出棧的時候,兩個棧一起出棧。舉個列子 入棧3...

求棧的最小元素

2.設計包含min函式的棧。定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。要求函式min push以及pop的時間複雜度都是o 1 思路 我看到這道題目時,第一反應就是每次push乙個新元素時,將棧裡所有逆序元素排序。這樣棧頂元素將是最小元素。但由於不能保證最後push進棧的元素最...

求棧中的最小元素

定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素,要求函式min push以及pop的時間複雜度都是o 1 主要難點 將當前最小的元素min出棧之後,如何快速找到下乙個最小的元素?因此需要乙個輔助棧,每次push乙個新元素的時候,同時將最小元素push到輔助棧中 每次pop乙個元素出棧...