Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Thuật toán tìm kiếm nhị phân c++

20:41 17-12-2017 871 lượt xem 6 bình luận 23:44 25-12-2017

Ví dụ có một mảng 1 2 3 4 6 6 7 8 9.

Phần tử cần tìm kiếm là 6 thì tìm kiếm được và chỉ xuất ra màn hình là vị trí arr[4].

Vậy để tiếp tục tìm kiếm xuất ra màn hình cả hai vị trí ar[4] và ar[5] thì làm như thế nào vậy?

Mong mọi người giúp đỡ. Cảm ơn nhiều :))

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Vector đã bình luận 23:44 25-12-2017

ồ. câu hỏi của bạn mình thấy hay phết nhưng chắc phải chỉnh lại 1 tẹo. Tìm kiến nhị phân thì tức là bạn đã sắp xếp cái dãy ấy là dãy k giảm r. Bạn đặt ra trường hợp là dãy 1 tỉ phần tử chẳng hạn. 1 2 3 3 3 3 3.. ... 3 3 3 99999999 1000000000. thì có lẽ bạn nên đổi đầu bài thành: tìm vị trí số 3. nếu có nhiều số 3 thì xuất ra vị trí đầu và vị trí cuối. còn bạn trả về 1 đống số 3 4 5 6 7 .... liên tiếp kia thì cũng k có nhiều ý ngĩa. và cũng k thể làm được. nếu có cái mảng to đùng chứa dãy số kết quả đó. thì chắc chắn là việc lưu dãy số đó phải o(n) trở lên.

tuandat đã bình luận 22:42 19-12-2017

Bạn tìm một index của số cần tìm rồi tiếp tục dùng while để tìm các số kề trước và kề sau nó.

Nguyễn Thái Hải đã bình luận 09:43 18-12-2017

không hiểu ý bạn lắm. chỉ số thì nó làm gì trùng nhau?

K newbie đã bình luận 07:58 18-12-2017

Bạn ơi cái đó trường hợp hai chỉ số arr gần nhau thì ++, chứ lỡ nó trùng nhau ở nhiều vị trí thì sao... 

Nguyễn Thái Hải đã bình luận 23:35 17-12-2017

trong thuật toán có cái là index hoặc middle hoặc key mà bạn. nó như cái index rồi cộng lên xuất ra thôi

Câu hỏi mới nhất