針對順序表進行的查詢
順序查詢
插值查詢
#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]
;/* 斐波那契數列 */
//無序哨兵順序查詢
intsequential_search
(int
* a,
int n,
int key)
return0;
}//有哨兵順序查詢
intsequential_search2
(int
* a,
int n,
int key)
return i;
}//折半查詢
intbinary_search
(int
* a,
int n,
int key)
}return0;
}//插值查詢
intinterpolation_search
(int
* a,
int n,
int key)
return0;
}///* 斐波那契查詢 */
/* 斐波那契查詢 */
intfibonacci_search
(int
* a,
int n,
int key)
else
if(key > a[mid]
)else
}return0;
}int
main
(void);
for(i =
0; i <= maxsize; i++
) result =
sequential_search
(a, maxsize, maxsize)
;printf
("sequential_search:%d \n"
, result)
; result =
sequential_search2
(a, maxsize,1)
;printf
("sequential_search2:%d \n"
, result)
; result =
binary_search
(arr,10,
62);printf
("binary_search:%d \n"
, result)
; result =
interpolation_search
(arr,10,
62);printf
("interpolation_search:%d \n"
, result)
; f[0]
=0; f[1]
=1;for
(i =
2; i <
100; i++
) result =
fibonacci_search
(arr,10,
62);printf
("fibonacci_search:%d \n"
, result)
;return0;
}
大話資料結構 幾種排序演算法
這篇筆記主要是寫寫這些常見的排序演算法。思想 兩兩比較相鄰記錄的關鍵字,反序則交換,直到沒有反序為止。include 交換int型陣列l中下標i和j的值 void swap int l,int i,int j void bubblesort int l 分析 最好的情況比較n 1次,時間複雜度o n...
《大話資料結構》
函式的漸進增長 我們現在來判斷一下,兩個演算法a和b哪個更好。假設兩個演算法的輸入規模都是n,演算法a要做2n 3次操作,你可以理解為先有乙個n次的迴圈,執行完成後,再有乙個n次迴圈,最後有三次賦值或運算,共2n 3次操作。演算法b要做3n 1次操作,你覺得它們誰更快呢 準確來說,答案是不一定的 當...
《大話資料結構》
常見的時間複雜度 常見的時間複雜度如下圖所示 常用的時間複雜度所耗費的時間從小到大依次是 o 1 o logn o n o nlogn o n o n 三次方 o 2 n次方 o n!o n n次方 我們前面已經談到了 o 1 常數階 o logn 對數階 o n 線性階 o n 平方階等,至於o ...