題目1.左旋陣列中的查詢(附:字串左旋方法 的題目2)
解法:將這個問題可以分解成子問題。要是帶查詢值落在單調有序區,那就直接二分查詢了,落在左旋陣列區,就遞迴查詢。
也可以把它簡化成乙個遞迴,就用fun,不用bs是一樣的。
題目2.左旋陣列中的最小值
止條件,當陣列最後剩下兩個數的時候,這就是最小規模了,輸出較小的數就行了。還有一點就是邊界值 mid 也要放到下一
次遞迴中,防止出現4,5,1,2,3 這種情況。
#include int bs(int* a,int low,int high,intvalue)
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 種不同的船。每一艘船有乙個稀有值,任意兩艘船的稀有...