blog

二分探索アルゴリズムの実装

C++ #include #include using namespace std; int ; int main()...

Mar 20, 2020 · 1 min. read
シェア
#include <iostream>
#include <vector>
using namespace std;
int binarySearch(const vector<int>&, const int);
int main() {
	vector<int> a = {0, 1, 2, 3, 4, 5};
 cout << binarySearch(a, 4);// 
 return 0;
}
/*
 * loを0に、hiをルックアップ配列の長さに、midをloとhiの平均に初期化する。
 * いつ< hi midの値が目標値より小さい場合、loをmidに更新する+ 1;
 * midの値が目標値より大きければ、次の反復ラウンドのためにhiをmidに更新する。
 */
int binarySearch(const vector<int>& v, const int target) {
	int lo = 0, hi = v.size();
 while (lo < hi) {
 	//ローを避ける+ hi 結果オーバーフロー
 	int mid = lo + (hi - lo) >> 1;
 	if (v[mid] == target) 
 	return mid;
 else if (v[mid] < target) 
 	lo = mid + 1;
 else
 	hi = mid;
 }
 return -1;//検索の失敗
}
Read next

CocoaPods最新バージョンの問題

# 次の行のコメントを外して、プロジェクトのグローバルプラットフォームを定義します。\nソース ''\np

Mar 19, 2020 · 1 min read

一般的なHTMLタグ

Mar 19, 2020 · 2 min read

Jenkinsの設定 gitLab ssh認証

Mar 19, 2020 · 2 min read

製品を見る

Mar 16, 2020 · 2 min read