二分查詢相關

2021-06-26 06:00:26 字數 885 閱讀 6092

題目1.左旋陣列中的查詢(附:字串左旋方法 的題目2)

解法:將這個問題可以分解成子問題。要是帶查詢值落在單調有序區,那就直接二分查詢了,落在左旋陣列區,就遞迴查詢。

也可以把它簡化成乙個遞迴,就用fun,不用bs是一樣的。

題目2.左旋陣列中的最小值

止條件,當陣列最後剩下兩個數的時候,這就是最小規模了,輸出較小的數就行了。還有一點就是邊界值 mid 也要放到下一

次遞迴中,防止出現4,5,1,2,3 這種情況。

#include int bs(int* a,int low,int high,int

value)

if(a[mid]>value)

else

}return -1;}

int fun(int* a,int low,int high,int

value)

if(a[mid]>a[low])

else

}else

else}}

else

}int min(int* a,int low,int

high)

else

else

}}int

main();

int b[7] =;

int c[9] =;

printf(

"二分查詢結果:%d\r\n

",bs(a,0,6,5

)); printf(

"左旋陣列查詢結果:%d\r\n

",fun(b,0,6,9

));

printf(

"左旋陣列最小值:%d\r\n

",min(c,0,8

));

return1;

}

二分查詢相關

題目1.左旋陣列中的查詢 附 字串左旋方法 的題目2 解法 將這個問題可以分解成子問題。要是帶查詢值落在單調有序區,那就直接二分查詢了,落在左旋陣列區,就遞迴查詢。也可以把它簡化成乙個遞迴,就用fun,不用bs是一樣的。題目2.左旋陣列中的最小值 止條件,當陣列最後剩下兩個數的時候,這就是最小規模了...

迭代二分查詢二分查詢

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

1128 二分 二分查詢

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