時間限制:
10000ms
單點時限:
1000ms
記憶體限制:
256mb
描述在上一回裡我們知道nettle在玩《艦これ》,nettle的鎮守府有很多船位,但船位再多也是有限的。nettle通過撈船又出了一艘稀有的船,但是已有的n(1≤n≤1,000,000)個船位都已經有船了。所以nettle不得不把其中一艘船拆掉來讓位給新的船。nettle思考了很久,決定隨機選擇乙個k,然後拆掉稀有度第k小的船。 已知每一艘船都有自己的稀有度,nettle現在把所有船的稀有度值告訴你,希望你能幫他找出目標船。
輸入第1行:2個整數n,k。n表示陣列長度,
第2行:n個整數,表示a[1..n],保證不會出現重複的數,1≤a[i]≤2,000,000,000。
輸出第1行:乙個整數t,表示t在陣列中是第k小的數,若k不在陣列中,輸出-1。
樣例輸入
10 41732 4176 2602 6176 1303 6207 3125 1 1011 6600
樣例輸出
1732#include/*採用兩頭交換法*/
using namespace std;
int a[1111111];
int n,k;
void search(int l,int r)
}while(m<=t);
if(t==m-2)//這個條件關鍵(它是唯一能確定當前所指向的數順序排第幾)
int main()
{ cin>>n>>k;
int i;
for(i=1;i<=n;i++)
cin>>a[i];
if(k<=0||k>n)
cout<<-1<
本次題目我看了網上是快排標準法比較多,我就嘗試了一下兩頭交換法與二分的結合,寫的不好的地方希望網者指正。
C 二分法查詢,遞迴二分法
用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...
python二分法查詢 Python 二分法查詢
二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...
二分法,二分搜尋
二分法是乙個應用很廣泛的演算法 好吧,剛說出這句話的時候,我查了一下資料,發現我了解的應用寥寥無幾.ok,既然不知道,那就下次補充把。咱們直接進入主題。二分法 bisection method 是一種方程式根的近似值求法。演算法 若要求已知函式f x 0的值則 1.先找出乙個區間 a,b 使得f a...