トピックは対処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; }