二分查詢 二分查詢之前,內容都是從小到大排好序的

2021-10-02 23:29:01 字數 1033 閱讀 8967

二分查詢前提:要查詢的序列必須是有序的,如果要查詢的元素在陣列中是重複的,則不能保證最後找到是哪乙個

//   lines是字典表array(起始ip,終止ip,ip所在省份)        ip是要查詢的東西

def binarysearch(lines: array[(string, string, string)], ip: long) : int = }-1

}

int

a =

;//有序的

system.out.

println

(getindex

(a,22))

; system.out.

println

(getindex

(a,66))

; system.out.

println

(getindex

(a,88))

;public

static

intgetindex

(int a,

int key)

else

if(a[mid]

>key)

mid=

(min+max)/2

;if(min >max)

}return mid;

//返回查詢元素的下標

}

如果在陣列中沒有找到,他會提示你如果想要插入的話,應該插入到哪個位置

public

static

intgetindex

(int a,

int key)

else

if(a[mid]

>key)

else

}return

-(min+1)

;//如果min 大於 max 的話,就返回 負的插入點+1

}

迭代二分查詢二分查詢

在寫這篇文章之前,已經寫過了幾篇關於改迭代二分查詢主題的文章,想要了解的朋友可以去翻一下之前的文章 bentley在他的著作 writing correct programs 中寫道,90 的計算機專家不能在2小時內寫出完整確正的二分搜尋演算法。難怪有人說,二分查詢道理單簡,甚至小學生都能明確。不過...

1128 二分 二分查詢

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述nettle最近在玩 艦 因此nettle收集了很多很多的船 這裡我們假設nettle氪了很多金,開了無數個船位 去除掉重複的船之後,還剩下n 1 n 1,000,000 種不同的船。每一艘船有乙個稀有值,任意兩艘船的稀有...

二分查詢及變種二分查詢

二分查詢也稱折半查詢 binary search 它的查詢效率很好。二分查詢有乙個要求是必須採用順序儲存結構,而且表種的元素是有序的。只有滿足這個條件我們才能使用二分查詢。查詢條件 查詢區域的左邊界,小於等於查詢區域的右邊界 查詢過程 1.迴圈條件 查詢條件 2.計算序列中間下標位置 3.如果待查詢...