/* 無哨兵順序查詢,a為陣列,n為要查詢的陣列個數,key為要查詢的關鍵字 */優化int sequential_search(int *a,int n,int key)
return 0;
}
/* 有哨兵順序查詢 */
int sequential_search2(int *a,int n,int key)return i;
}
/* 折半查詢 */int binary_search(int *a,int n,int key)
}return 0;
}
/* 插值查詢 */關鍵:插值查詢是根據要查詢的關鍵字key與查詢表中最大最小記錄的關鍵字比較後的查詢方法,其核心是插值的計算公式(key-a[low])/(a[high]-a[low])int interpolation_search(int *a,int n,int key)
return 0;
}
/* 斐波那契查詢 */測試** vc++6.0下int fibonacci_search(int *a,int n,int key)
else if (key>a[mid])
else
}return 0;
}
#include "stdio.h"
#include "stdlib.h"
#include "io.h"
#include "math.h"
#include "time.h"
#define ok 1
#define error 0
#define true 1
#define false 0
#define maxsize 100 /* 儲存空間初始分配量 */
typedef int status; /* status是函式的型別,其值是函式結果狀態**,如ok等 */
int f[100]; /* 斐波那契數列 */
/* 無哨兵順序查詢,a為陣列,n為要查詢的陣列個數,key為要查詢的關鍵字 */
int sequential_search(int *a,int n,int key)
return 0;
}/* 有哨兵順序查詢 */
int sequential_search2(int *a,int n,int key)
return i;
}/* 折半查詢 */
int binary_search(int *a,int n,int key)
}return 0;
}/* 插值查詢 */
int interpolation_search(int *a,int n,int key)
return 0;
}/* 斐波那契查詢 */
初學A 演算法
一 介紹a 演算法 學過資料結構的人都知道,圖的搜尋演算法主要有深度優先演算法和廣度優先演算法。廣度優先是從初始節點一層一層向下找,直到找到目標為止。深度優先是按照一定的順序前查詢完節點的乙個分支,再查詢另乙個分支,以至找到目標為止。在廣度優先中,整個搜尋好似乙個圓形向外展開,直到到達目標節點,這樣...
查詢演算法(一)順序查詢
順序查詢 線性查詢 最基本的查詢技術,過程 從表中的第乙個 或最後乙個 記錄開始,逐個進行記錄的關鍵字和給定值比較,若某個記錄的關鍵字和給定值相等,則查詢成功,找到所查的記錄 如果直到最後乙個 或第乙個 記錄,其關鍵字和給定值比較都不等時,則表中沒有多查的記錄,查詢不成功。實現int sequenc...
KMP演算法初學
kmp演算法是一種改進的模式匹配演算法,與樸素的模式演算法 即模式串與主串逐一匹配,匹配失敗模式串整體右移一位再次逐一匹配至完全匹配成功 相比,主串中指標無需回溯,時間複雜度為o n m n為主串長,m為模式串長 樸素為o n m 一 next陣列kmp演算法中多了乙個next陣列,要用kmp演算法...