1.第一步,現將首元素設為標記位flag,次數出現最多的元素設為maxelem,初始flag=陣列首元素,flag將標記位乙個乙個的與陣列每個元素比較,若相等,count++,
第二步,將陣列的第二個元素設為標記位,依次迴圈標記
第三部,若第二次的比第一次的count大,將最大的次數count設為最多位數,在迴圈時就比較,同時將maxelem等於迴圈時的元素
第四部,函式返回最多出現的次數,如果次數大於陣列長度一半時,函式返回最多元素maxelem,否則返回-1
#include#define maxsize 100
typedef struct sqlistsqlist;
int find(sqlist &l)
}if(min>(l.length/2))
return zuiduo;
else
return -1;
}int initsqlist(sqlist &l){
int n;
printf("順序表要輸入的個數:");
scanf("%d",&n);
printf("\n");
l.length=n;
for(int i=0;i3.時間複雜度:o(n^2)
空間複雜度,o(n)
資料結構考研 KMP演算法
廢話少說,時間緊任務重,直接來。參考阮一峰的日誌 字串匹配的kmp演算法 只要求出部分匹配值 字首,字尾共有的最長的那個 也就是它到底移動幾位,也就解決了 移動位數 已匹配的字元數 對應的部分匹配值 部分匹配值 就是 字首 和 字尾 的最長的共有元素的長度。以 abcdabd 為例,a 的字首和字尾...
資料結構 考研 Floyd演算法
floyed 演算法與 dijkstra 演算法的思想完全一樣,遍歷整個鄰接矩陣,比較每一條邊可否加入迴圈中的兩邊之間來短接。floyed 演算法基於動態規劃演算法,可以允許有負權值,但不可以有帶負權值的邊存在。首先,初始化乙個鄰接矩陣,初始化乙個 dp 矩陣,初始化乙個頂點的前趨矩陣prev。de...
考研 資料結構 查詢演算法
查詢演算法 1.順序查詢 typedef struct sstable intsearch seq sstable s,int k return 1 增加哨兵 intsearch seq 02 sstable s,int k 2.折半查詢 僅適用於有序的順序表 o log2 n 公升序排列 intb...