五、圖
expected primary-expression before 『[』 token剛剛的乙個結構體定義時候出現的錯誤
比如剛剛寫的**是醬嬸兒的
typedef
struct studentstu[
1010];
for(i=
1;i<=n;i++
)
是指缺少申明,需要申明變數
修正:
typedef
struct studentstudent;
student stu[
1010];
for(i=
1;i<=n;i++
)
敲了幾遍終於沒問題了。。。。直接上源**
#include
intswap
(int a,
int low,
int high)
//寫乙個交換函式
intpartition
(int a,
int low,
int high)
//核心排序
swap
(a,low,high)
;//當小於基準值時交換
while
(a[low]
<=base && low
//從左往右
swap
(a,low,high)
;//交換
}return low;
//返回下標(用於二分
}int
quicksort
(int a,
int low,
int high)
}int
main()
quicksort
(a,0
,n-1);
for(j=
0;j)return0;
}
呼叫三個函式,分別是:swap(交換) partition(二分)←核心 quicksort(實現遞迴)
借用約瑟夫環複習了一下結構體指標。
貼上****
//n個小孩手拉手,從1報數,第m個人出列,再繼續從1報數,直到剩最後乙個人為止,輸出是幾號
#include
#include
typedef
struct linklink;
link *
creatlist
(int n)
tail->next=
null
;//別忘把最後乙個結點的next域置為空
return head;
//返回頭結點,該鍊錶建立完成
}void
deletelist
(link *p,
int x)
if(p!=
null)}
intmain()
if(i==n)
}printf
("%d\n"
,p->next->pos)
;//p的這個時候在頭結點位置
free
(p);
}return0;
}
(我覺得這個我還得多敲幾遍…
在記錄的儲存位置和它的關鍵字之間建立乙個確定的相應關係f。使得每乙個關鍵字key相應乙個儲存位置f(key)。雜湊技術既是一種儲存方法,也是一種查詢方法。
雜湊技術適合求解問題是查詢與給定值相等的記錄。查詢速度快。
雜湊技術不適合範圍查詢,不適合查詢相同關鍵字的記錄,不適合獲取記錄的排序,最值。
關關鍵字相應的記錄儲存位置稱為雜湊位址。
重點:需要解決衝突:關鍵字key1不等於key2。但f(key1)=f(key2)。
個人理解就是一堆資料,每個資料都取乙個和資料相關的名字,方便查詢,時間複雜度降為o(1)。但有衝突點,可能會有兩個或多個資料的名字一樣,即儲存位置有衝突,重點著手於如何處理衝突。
a.直接定址法
f(key)=a x key+b(a、b為常數)
適合查詢錶小且連續。
b.數字分析法
適合關鍵字位數多且若干位分布均勻的資料。
c.平方折中法
1234,平方1522756。抽取中間227作為雜湊位址。
不知道關鍵字分布,且位數不是非常大。
d.摺疊法
從左到右切割成位數相等的幾部分,這幾部分疊加求和,並按雜湊表表長,取後幾位作為雜湊位址。
不知道關鍵字分布,位數多。
e.除留餘數法
f(key)=key mod p(p<=m)
p選取不好容易產生衝突。
通常p為<=m(最好接近m)的最小質數或者不包括小於20質因子的合數。f.隨機數法
f(key)=random(key),random隨機函式
當關鍵字為字串,轉化為某種數字來對待。比方ascll碼或者unicode碼等。
適合關鍵字長度不等的資料。
其實我覺得上面摘的這些除了湊字數沒啥太多用處…實際應用的時候根據所給資料咋方便咋來
a.開放定址法
意思是一旦衝突,尋找下乙個空的雜湊位址
b.鏈位址法
將全部關鍵字為同義詞的記錄儲存在乙個單鏈表(同義詞字表)中。
雜湊表中僅僅儲存全部同義詞字表的頭指標。
c. 公共溢位區法
把衝突的關鍵字統一都放到一塊去儲存起來,也就是溢位表。雜湊計算後,先基本表比較。不等,到溢位表進行順序查詢。
迴圈鍊錶(約瑟夫環)
約瑟夫環是乙個數學的應用問題 已知n個人 以編號1,2,3.n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。要通過輸入n,m,k三個正整數,來求出列的序列。這個問題採用的是典型的...
鍊錶實現約瑟夫環
約瑟夫環 約瑟夫問題 是乙個數學的應用問題 已知n個人 以編號1,2,3.n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依 此規律重複下去,直到圓桌周圍的人全部出列。實現 include using namespace ...
快排及鍊錶排序
void quicksort vector int vec,int low,int high swap vec low vec mid 保證交換到頭部的元素比樞紐元小 quicksort vec,low,mid 1 quicksort vec,mid 1,high 呼叫 quicksort num,...