遍匈 / 方象潤更 / 湘、臥孀 /

9.2 床蓑臥孀燕!嗤會燕議峨峙臥孀才豎襖椎弐臥孀

匯.峨峙臥孀


峨峙臥孀宥狛和双巷塀
箔函嶄泣?凪嶄low 才high 蛍艶葎燕議曾倖極泣和炎?kx 葎公協峙。
飛kx<tbl.elem[mid].key?夸high=mid-1?写偬恣磯曝臥孀?
飛kx>tbl.elem[mid].key?夸low=mid+1?写偬嘔磯曝臥孀?
飛kx=tbl.elem[mid].key?臥孀撹孔。

峨峙臥孀頁峠譲來嬬恷挫議臥孀圭隈?徽峪癖栽噐購囚鷹譲堡蛍下議燕?凪扮寂丼楕卆隼頁O(log2n)。

屈.豎襖椎弐臥孀


豎襖椎弐臥孀宥狛豎襖椎弐方双斤嗤會燕序佩蛍護?臥孀曝寂議曾倖極泣才嶄泣脅嚥豎襖椎弐方嗤購。豎襖椎弐方双協吶泌和? 譜n 倖方象圷殆議嗤會燕?拝n 屎挫頁蝶倖豎襖椎弐方-1?軸n=F(k)-1 扮?辛喘緩臥孀圭隈。

豎襖椎弐臥孀蛍護議房?葎?斤噐燕海葎F(i)-1 議嗤會燕?參屢斤low 陶卞楚F(i-1)-1 函嶄泣?軸mid=low+F(i-1)-1?斤燕序佩蛍護?夸恣徨燕燕海葎F(i-1)-1?嘔徨燕燕海葎F(i)-1-[F(i-1)-1]-1=F(i-2)-1。辛需?曾倖徨燕燕海匆脅頁蝶倖豎襖椎弐方-1?咀遇?辛參斤徨燕写偬蛍護。

‐麻隈9.3/
? low=1?high=F(k)-1? // 譜崔兜兵曝寂
F=F(k)-1?f=F(k-1)-1? // F 葎燕海?f 葎函嶄泣議屢斤陶卞楚
? 輝low>high 扮?卦指臥孀払移佚連// 燕腎?臥孀払移
? low≤high?mid=low+f; // 函嶄泣
a. 飛kx<tbl.elem[mid].key?夸
p=f?f=F-f-1? // 柴麻函嶄泣議屢斤陶卞楚
F=p? // 距屁燕海F
high=mid-1?廬? // 臥孀壓恣磯曝序佩
b. 飛kx>tbl.elem[mid].key?夸
F=F-f-1? // 距屁燕海F
f=f-F-1? // 柴麻函嶄泣議屢斤陶卞楚
low=mid+1?廬? // 臥孀壓嘔磯曝序佩
c. 飛kx=tbl.elem[mid].key?卦指方象圷殆壓燕嶄了崔// 臥孀撹孔

輝n 載寄扮?乎臥孀圭隈各葎仔署蛍護隈?凪峠譲來嬬曳孵磯臥孀挫?徽凪扮寂丼楕挽葎O(log2n)?遇拝?壓恷撒秤趨和曳孵磯臥孀餓?單泣頁柴麻嶄泣叙恬紗、受塰麻。

AltStyle によって変換されたページ (->オリジナル) /