二分查詢的迭代和遞迴實現:
#include
#include
int
find1(int*a
,int
low
,int
high
,int
key)//迭代二分查詢
return-1
;
}
int
find2
(int*a
,int
low
,int
high
,int
key) //遞迴二分查詢
gcc是如何知道檔案型別呢?通過副檔名判斷檔案型別
makefile規則遵循以下通用形式
target:dependency [dependency[…]] //dependency是依賴的意思
command
command
[…]每個command第乙個字元必須是tab鍵,而不是空格鍵,不然make會報錯並停止。
稍微複雜的makefile,內容如下:
start:hello.o
gcc -o hello hello.o
hello.o:
gcc -o hello.o -c hello.c
target start後面的hello.o代表其下的command依賴與hello.o這個target。
所以make先執行了hello.o這個target下的command。
在makefile使用變數:
cc=gcc
srcs=hello.c
objs=$(srcs:.c=.o)
exec=hello
start:hello.o
$(cc) -o $(exec) $(objs)
@echo '---------------ok---------------'
hello.o:
$(cc) -o $(objs) -c $(srcs)
clean:
rm -f hello.o
增加變數cc,srcs、objs、exec,即每個引用變數cc的地方的展開成變數的值。
objs=$(srcs:.c=.o),意思是將srcs變數中的.c替換為.o。
makefile的模式規則
.suffixes: .c .o 表示任何x.c檔案與x.o關聯
.c.o: 表示make定義了一條規則,任何x.o檔案都從 x.c編譯而來
make定義了一些有用的預定義變數
在makefile使用自動變數和模式規則的例子並且可以編譯多個原始檔
.suffixes:.c .o
cc=gcc
srcs=hello.c\
pub.c
objs=$(srcs:.c=.o)
exec=hello
start:$(objs)
$(cc) -o $(exec) $(objs)
@echo '---------------ok---------------'
.c.o:
$(cc) -o $@ -c $
clean:
rm -f $(objs)
gdb除錯一定要加上-g選項:
gdb 程式名 [corefile]
corefile是可選的,但能增強gdb的除錯能力。
linux預設是不生成corefile的,所以需要在使用者profile檔案中新增
vi .profile
ulimit -c unlimited
. .profile
來自為知筆記(wiz)
迭代二分查詢二分查詢
在寫這篇文章之前,已經寫過了幾篇關於改迭代二分查詢主題的文章,想要了解的朋友可以去翻一下之前的文章 bentley在他的著作 writing correct programs 中寫道,90 的計算機專家不能在2小時內寫出完整確正的二分搜尋演算法。難怪有人說,二分查詢道理單簡,甚至小學生都能明確。不過...
1128 二分 二分查詢
時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述nettle最近在玩 艦 因此nettle收集了很多很多的船 這裡我們假設nettle氪了很多金,開了無數個船位 去除掉重複的船之後,還剩下n 1 n 1,000,000 種不同的船。每一艘船有乙個稀有值,任意兩艘船的稀有...
二分查詢及變種二分查詢
二分查詢也稱折半查詢 binary search 它的查詢效率很好。二分查詢有乙個要求是必須採用順序儲存結構,而且表種的元素是有序的。只有滿足這個條件我們才能使用二分查詢。查詢條件 查詢區域的左邊界,小於等於查詢區域的右邊界 查詢過程 1.迴圈條件 查詢條件 2.計算序列中間下標位置 3.如果待查詢...