PDA

View Full Version : [Q] về giải thuật tìm kiếm nhị nphân



Mezcal
06-03-2003, 23:42
Cho tui hỏi có ai biết giải thuật này làm ơn giải nghĩa kỹ về nó giùm tui được ko ? Với lại giải thuật này khi áp dụng vào danh sách là thông tin trong file và khi danh sách la vector thì có khác nhau không ? Cám ơn nhiều

TinyToon
08-03-2003, 05:59
Có khác nhau.
- Nếu danh sách được lưu trong bộ nhớ chính; vector,
- danh sách lưu ở file, bộ nhớ ngoài,
Có nhiều dạng khác nhau thuật toán tìm kiếm nhị phân, bạn tìm tài liệu đọc cụ thể. :)

quangvu
10-03-2003, 09:56
Thuật toán tìm kiếm trên cây nhị phân vô cùng phức tạp và rất rối ,Vũ không thể POST lên được mong bạn thông cảm ,bãn có thể tìm mua các sách về Cấu trúc Dữ Liệu hay về Giải thuất đều có cả .
*** Không ai lưu cây nhị phân ra bộ nhớ ngoài ,để lưu trử ,sắp xếp trên bộ nhớ ngoài nhừng ta thường dùng B*Tree .Các CSDL như MS SQL Server ,mySQL cũng ứng dụng B*Tree để lưu trữ CSDL của mình .
Chúc thành công .

knighthood
12-03-2003, 02:08
Thế này nhé, tìm kiếm nhị phân là tìm kiếm trên cơ sở CHIA ĐÔI phạm vi tìm kiếm. Điều kiện ở đây là vùng tìm kiếm cần có thứ tự
VD: Cho dãy số 1 2 4 5 6 8 12 15. Bạn muốn tìm số 8.
B1: Chia đôi vùng tìm kiếm , ta có 1 2 4 và 5 6 8 12 15
B2: So sánh 8 với 5 -> 8=>5 -> vùng tìm kiếm kế tiếp sẽ là 5 6 8 12 15
B3: Chia đôi vùng tìm kiếm , ta có 5 6 và 8 12 16
B4: So sánh 8 với 8 -> 8=>8 -> về nguyên tắc ta sẽ tiếp tục chia đôi vùng tìm kiếm 8 12 15 thành 8 12 và 15 v.v. Nhung cũng có thể dừng vì 8=8
Giải thuật:
public int BS(int a[],int N,int x)// vector a, chiều dài N,tìm số x
{ int left = 0;
int right = N-1;
int mid;
do
{ mid = (left+right)/2;
if (x = a[mid])
return mid; // kết qủa là mid
else
if (x < a[mid])
right = mid - 1;
else
left = mid + 1;
} while (left <= right);
return -1 // không tìm thấy x
}

Chúc bạn thành công
lol

aloveset
10-11-2008, 08:53
Các anh ơi, vậy thì kỹ thuật "space vector" trong thuật toán tìm kiếm thì sao vậy các anh? cái này em có coi nhưng không hiểu kỹ thuật này nó làm như thế nào. Mà em thấy tài liệu nói về kỹ thuật này cũng không có...
Các anh ai biết hay có tài liệu thì share cho em với.
Cảm ơn nhiều!

truongchc
04-02-2009, 08:00
em bắt đầu vào thực tập các anh ạ. Em làm về giải thuật tìm kiếm nhưng hiện tại thì chưa biết gì. Rất mong mọi người giúp đỡ nhé! Thank

viyk
04-01-2010, 12:30
sao giống mik quá
mình cũng chỉ biết đề bài là giải thuật tìm kiếm
còn lại hok biết j thêm
mong mọi người cho ý kiến để tụi em học hỏi