聽說過一句話,程式設計之久,除了資料結構和演算法什麼也不屬於我們。為了更好的學習資料結構和演算法,今天決定先把清華大學出版的資料結構(c語言版)書中的演算法實現一遍。現在開始第一彈。貴在堅持。
順序查詢:
演算法描述
#include
#include
//順序表的查詢
#define eq(a, b) ((a) == (b))
#defineelemtypeint
typedef structsstable;
//在順序表st中順序查詢其關鍵字等於key的資料元素。若找到,則函式值為該元素在表中的位置,否則為0
int search_seq(sstable st, elemtype key)
int main()
s1.elem=a;
s1.length=5;
int c=search_seq(s1,key);
printf("%d\n",c);
}效能分析:
asl(successful)=(n+1)/2;
asl(f)=n+1;
asl(平均)=(asl(s)+asl(f))/2=3/4(n+1);
折半查詢:
#include
#include
//折半查詢演算法
typedef structsstable;
int search_bin(sstable s1,int key,int &n)
//沒有查詢到
return 0;
}int main()
;s1.elem=a;
int result=search_bin(s1,7,n);
printf("元素所在位置的陣列下標為:%d\n",result);
printf("查詢的次數為:%d\n",n);
}效能分析:
效率比較:折半查詢》順序查詢
靜態查詢 順序查詢和折半查詢法
一 靜態查詢 只是起查詢或檢索的作用,不涉及插入 刪除,反之為動態查詢。二 順序查詢 順序查詢過程中往往設定監視哨,在查詢過程中不用每一步都檢查整個表是否查詢完畢。假設,每個元素的查詢概率相同,順序查詢成功時平均查詢長度為 n 1 2 順序查詢不成功時平均查詢長度為 n 1 4 考慮到查詢不成功的情...
靜態查詢(順序 折半)
include include void seqsearch int a,int r 順序查詢 if i 0 printf 元素所在位置 d n i else printf 沒有該元素!int binsearch1 int a,int r 折半查詢 非遞迴 return 0 int binsearc...
靜態查詢表 順序查詢 折半查詢 分塊查詢
引言 除去各種線性和非線性的資料結構外,還有一種在實際應用中大量使用的資料結構 查詢表。查詢表是由同一型別的資料元素構成的集合。對查詢表經常進行的操作有 1 查詢某個 特定的 資料元素是否在查詢表中 2 檢索某個 特定的 資料元素的各種屬性 3 在查詢表中插入乙個資料元素 4 從查詢表中刪去某個資料...