顔の質問53_3-配列のインデックス値と等しい要素オファー安全性を証明する - バイナリ検索

/ *
トピック:
	単調増加アレイ、及び任意の数に等しい添字値を求めます。
* /
/ *
アイデア:
	二分法。
* /
書式#include <iostreamの>
書式#include <CStringの>
書式#include <ベクトル>
書式#include <アルゴリズム>
書式#include <マップ>


名前空間stdを使用。

INT getNumberSameAsIndex(ベクトル<整数>&A、INT N){
    IF(N <= 0 || A.empty())リターン-1。
    = 0を開始INT。
    INT端= N  -  1。

    一方、(開始<=端){
        INT中央=(+端を開始)/ 2。
        IF(A [中間] <中間){
            開始= 1 +真ん中。
        }そうであれば(A [中間]>中央){
            端部=中央 -  1。
        }そうしないと{
            真ん中返します。
        }
    }

    -1を返します。
}

INTメイン(){
   ベクター<整数> A = {-3、-1,1,3,5}。
   COUT << getNumberSameAsIndex(5)。
}

   

おすすめ

転載: www.cnblogs.com/buaaZhhx/p/12088544.html