Binary Search trong C++

Mọi người cho mình hỏi khi sử dụng thuật toán tìm kiếm nhị phân Binary Search thì trong C++ có lệnh sẵn không ạ. Em có tìm kiếm mà người ta toàn dùng hàm mà không tìm ra lệnh.Ai biết ở đâu hoặc có thể chỉ giáo cho mình nhé ! Mình cảm ơn

std::lower_bound hoặc std::upper_bound

1 Like

Muốn tìm thì GG. @_@!

" Em có tìm kiếm mà người ta toàn dùng hàm mà không tìm ra lệnh. " em bác đọc k kĩ rồi :)))

Vậy thi không có. Học tiếp khi nào gặp thấy có thì có.
Không biết cách kết luận kết xuất thông tin. Kiến thức có phải lúc nào cũng đúng đâu hoc từng ngày thay đổi từng ngày.

cảm ơn bác nhé. để em tìm hiểu thêm
^^

Ơ hay nhỉ.em ko tìm thấy đâu có nghĩa là ko có.có thể là key words tìm kiếm sai nên ko ra.thì nên đây hỏi chăng có gì là sai khi mình đã tìm hiểu khá kĩ nhưng không có hẳn là 2 người tìm là khác, thì phải hỏi, không biết thì phải hỏi chẳng phải dấu ai.em đang học thuật toán và cần dùng nên tìm hiểu. bác ko giúp có thể nêu hướng cho em tìm =))) hướng gg thì đâu cần hỏi :slight_smile:

1 Like
binary_search(giới hạn trên,giới hạn dưới, giá trị tìm kiếm); 
// nếu có trả lại 1, ngược lại trả 0;


sao cái này của em không chạy được ạ? em cảm ơn ạ

#include <bits/stdc++.h>
#define ll long long
using namespace std;
main(){
	ll  test,n,a[10007];
	cin>>test;
	while(test--){
		cin>>n;
		for(int i=0;i<n;i++)		cin>>a[i];
		sort(a,a+n);
		for(int i=0;i<n;i++){
			if(binary_search(a[0],a[n-1],i))		cout<<i<<" ";
			else  						cout<<"-1"<<" ";
		}
		cout<<endl;
	}
}

Thông báo lỗi có nói đó. 1 mảng long long lại tìm 1 số kiểu int, thế thì sao ok được.

2 Likes

binary_search thì
mình phải dùng cú pháp là binary_search(L, R, x) thì nó sẽ tìm trong đoạn [L, R) nhá.

Toang vì hai tham số đầu phải là con trỏ hoặc forward iterator (kí hiệu trong hình là FIter) cơ.

3 Likes


em làm vậy rồi nma vẫn không được ý ạ!

#include <algorithm> nữa vào bạn :eyes:

Tối thiểu bạn hãy search lỗi trên Google hay tìm hàm binary_search để xem và sửa cú pháp cho đúng.

1 Like

à dạ em có search “hàm binary_search” rồi cơ mà không có nên me mới hỏi ạ. Em cảm ơn anh

Tìm bằng tiếng Việt không ra thì bạn tìm bằng tiếng Anh chứ.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?