二分查詢終極版

2021-07-30 10:07:32 字數 1610 閱讀 5748

本人最近懶癌發作,部落格已經幾個月沒動了,突然良心發現自己二分理解的不好,萬一要去省賽豈不是要收到來自大神的嘲諷?

二分分為四種,嚴格大於某值的最小值;嚴格小於某值的最大值;大於等於某值的最小值;小於等於某值的最大值

我們需要關注三個地方:

1.迴圈的條件 low

2.改變邊界的方法及條件:滿足要求條件的時候對應邊界=mid 否則mid+1或者-1

3.mid的取整方法:如果的找大於某值的最小值 向下取整;小於某值的最大值向上取整

#include#includeusing namespace std;

int main()

; int low=0,high=6,mid=3,target=8;

puts("target:8");

puts("> min");

while(lowtarget)//ok

high = mid;

else

low = mid + 1;

mid = (low + high) / 2;

printf("low=%d,mid=%d,high=%d\n",array[low],array[mid],array[high]);

}printf("%d\n----------------------\n",array[mid]);

low=0,high=6,mid=3,target=8;

puts("< max");

while(low= min");

while(low= target)//ok

high = mid;

else

low = mid + 1;

mid = (low + high) / 2;

printf("low=%d,mid=%d,high=%d\n",array[low],array[mid],array[high]);

}printf("%d\n----------------------\n",array[mid]);

low=0,high=6,mid=3,target=8;

puts("<= max");

while(low

target:8

> min

low=10,mid=12,high=14

low=10,mid=10,high=12

low=10,mid=10,high=10

10----------------------

< max

flag=1,low=2,mid=4,high=6

flag=-1,low=4,mid=6,high=6

flag=-1,low=6,mid=6,high=6

6----------------------

>= min

low=2,mid=4,high=8

low=6,mid=6,high=8

low=8,mid=8,high=8

8----------------------

<= max

low=8,mid=12,high=14

low=8,mid=10,high=10

low=8,mid=8,high=8

8----------------------

excel巨集 終極版

private sub commandbutton1 click sheet1 q20.list sheet2 q20trim.list sheet3 源資料表 副本 新建sheet4 批量合成 刪除空行 變成m 最終資料存於sheet3列pqr 批量合成 dim s as integer s te...

頁面傳參終極版

頁面傳引數是一種比較常見的業務需求,根據實現原理及適用環境可以分為兩大類。在普通瀏覽器端常用的方法有如下幾種 1.利用url傳參 在頁面跳轉的時候通過設定window.location.href新增引數,在接收引數的頁面通過window.location.search獲取引數字串。傳送引數的頁面 w...

kewin 接小球終極版

import pygame import random 1.loading 初始化 pygame.init 2.視窗 dis分開 play玩 展示 screen width 960screen height 540screen pygame.display.set mode screen width...