6-10バイナリサーチ(20点)

トピックは対処https://pintia.cn/problem-sets/15/problems/923

バイナリサーチは、裸のタイトル、同じ被写体に明らかに読み出されたプログラムです。

ローカル書き込みの完了の審判プログラム

// -----------------------------------------------
 / / マイルによってコードが
 // clionによってコンパイル
 // なしバグ
 // 常に承認取得
 // ------------------------------ ----------------- 

する#include <マップ> 
書式#include <キュー> 
の#include <スタック> 
の#include <cstdioを> 
する#include <CStringの> 
の#include <iostreamの> 
する#include <アルゴリズム> に#define MAXSIZE 10
 の#define NOTFOUND 0 
のtypedef int型のElementType。
typedef int型構造体

ポジション。
typedefのlノード* リスト。
構造体lノード{ 
    のElementTypeデータ[MAXSIZE]。
    最後の位置; 
}。

リストReadInput(); 
位置BinarySearch(リストL、XのElementType)。

使用して 名前空間はstdを、

/ * ********************ここから開始************************** ******* * / 

int型のmain()
{ 
    リストL。
    ElementType X; 
    位置P; 

    L = ReadInput()。
    scanf関数(" %のD "、およびX)。
    P = BinarySearch(L、X)。
    printf(" %d個の\ nを"、P)。

    リターン 0 ; 
} 

リストReadInput()
{ 
    リストL。
    int型のn; 
    scanf関数(" %のD "、&N)
    以下のためにint型 i = 1 ; iが<= N; iは++)scanf関数を(" %のD "、およびL-> データ[I])。
    L - >最終= N;
    リターンL; 
} 

ポジションBinarySearch(リストL、のElementType X)
{ 
    int型の L = 1、R = L->最後に、ANS = 0 

    一方、(L <= int型R){
        半ば=(L + R)>> 1 もし(L-> DATA [中間]> = X){ 
            ANS =中間、R =半ば1 
        }  L =ミッド+ 1 
    } 

    であれば(L-> DATA [ANS] = X!)戻りNOTFOUND。
    他の リターンANS; 
}
コードの表示

提出されたコードの機能部

位置BinarySearch(リストL、のElementType X)
{ 
    int型の L = 1、R = L->最後に、ANS = 0 

    一方、(L <= R){
         int型ミッド=(L + R)>> 1 もし(L-> DATA [中間]> = X){ 
            ANS =中間、R =半ば1 
        }  L =ミッド+ 1 
    } 

    であれば(L-> DATA [ANS] = X!)戻りNOTFOUND。
    他の リターンANS; 
}
コードの表示

 

おすすめ

転載: www.cnblogs.com/mile-star/p/11448813.html