Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
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 :))
ồ. 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.
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ó.
không hiểu ý bạn lắm. chỉ số thì nó làm gì trùng nhau?
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...
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