Binary Search Archives - Cao Đẳng FPT M?ng c c??c bng ? xét tuyển //westview-heights.com/tag/binary-search Cao Đẳng FPT M?ng c c??c bng ? tuyển sinh theo hình thức xét tuyển h?sơ. Tiêu chí đào tạo: Thực học ?Thực nghiệp! Mon, 20 Mar 2023 02:30:39 +0000 vi hourly 1 //wordpress.org/?v=6.4.1 //westview-heights.com/wp-content/uploads/cropped-logo-fpt-32x32.png Binary Search Archives - Cao Đẳng FPT M?ng c c??c bng ? xét tuyển //westview-heights.com/tag/binary-search 32 32 Binary Search Archives - Cao Đẳng FPT M?ng c c??c bng ? xét tuyển //westview-heights.com/tin-tuc-poly/ha-noi-tin-sinh-vien/binary-search-va-cach-ung-dung-binary-search-trong-java.html //westview-heights.com/tin-tuc-poly/ha-noi-tin-sinh-vien/binary-search-va-cach-ung-dung-binary-search-trong-java.html#respond Fri, 17 Mar 2023 10:31:14 +0000 //westview-heights.com/?p=213381 Binary Search là gì? Cách thực hiện và ứng dụng của nó ra sao trong Java? Hãy theo dõi bài viết dưới đây đ?tìm ra câu tr?lời nhé! Binary Search – Thuật toán tìm kiếm nh?phân là ...

The post Binary Search và cách ứng dụng trong Java appeared first on Cao Đẳng FPT M?ng c c??c bng ? xét tuyển.

]]>
Binary Search là gì? Cách thực hiện và ứng dụng của nó ra sao trong Java? Hãy theo dõi bài viết dưới đây đ?tìm ra câu tr?lời nhé!

Binary Search – Thuật toán tìm kiếm nh?phân là gì?

Thuật toán tìm kiếm nh?phân (Binary Search) là một thuật toán tìm kiếm tuyến tính cao cấp hơn với thời gian chạy là O(logN). Đối với các danh sách lớn, thuật toán này tốt hơn hẳn tìm kiếm tuyến tính, nhưng nó cũng đòi hỏi danh sách phải được sắp xếp t?trước và kh?năng truy nhập ngẫu nhiên (random access).

Thuật toán tìm kiếm nh?phân thường được dùng đ?tìm kiếm các phần t?trong một danh sách đã được sắp xếp, ví d? Trong một danh b?điện thoại sắp xếp theo tên, chúng ta có th?tìm kiếm s?điện thoại của một người theo tên người đó.

Thuật toán tìm kiếm nh?phân có lợi th?lớn v?đ?phức tạp thời gian khi so sánh với các thuật toán tìm kiếm khác, th?nhưng chính nó cũng có một s?nhược điểm. Đó chính là Thuật toán tìm kiếm nh?phân chậm hơn bảng băm.

Nếu nội dung danh sách b?thay đổi thì danh sách phải được sắp xếp lại trước khi s?dụng tìm kiếm nh?phân và thao tác này thường tốn thêm rất nhiều thời gian.

Ý tưởng và mô t?thuật toán tìm kiếm nh?phân

Vì thuật toán tìm kiếm nh?phân yêu cầu mảng đã được sắp xếp. Th?nên, đầu vào của chúng luôn là một mảng đã được sắp xếp. Do đó, thuật toán tìm kiếm nh?phân s?so sánh giá tr?cần tìm với phần t??giữa của mảng (mảng được chia mảng ra làm 2 phần bên trái và bên phải phần t?đó).

Nếu chúng không bằng nhau thì dĩ nhiên một nửa không chứa mục tiêu s?b?b?đi. Và việc tìm kiếm tiếp tục ?nửa còn lại, một lần nữa lấy phần t??giữa được chọn đ?so sánh với giá tr?đích và lặp lại điều này cho đến khi tìm thấy giá tr?cần tìm. Nếu tìm kiếm kết thúc với nửa còn lại trống thì mục tiêu s?không nằm trong mảng.

Mặc dù ý tưởng rất đơn giản, nhưng việc thực hiện tìm kiếm nh?phân chính xác cần phải chú ý đến một s?điểm quan trọng v?điều kiện thoát và tính toán điểm giữa của nó. V?cơ bản, các bước thực hiện tìm kiếm nhị x trong mảng như sau:

  • So sánh x với phần t??giữa.
  • Nếu x khớp với phần t??giữa, chúng ta tr?v?ch?s?giữa (mid).
  • Nếu x lớn hơn phần t?giữa, thì x ch?có th?nằm trong nửa phân đoạn bên phải sau phần t?mid. Vì vậy, chúng ta ch?tìm kiếm ?nửa phải của mảng.
  • Nếu x nh?hơn phần t?giữa tiếp tục tìm ?nửa bên trái.
  • Lặp lại đến khi tìm ra x hoặc tr?v?Null khi x không nằm trong mảng.

Ví d? chúng ta có mảng A[2, 4, 9, 10, 11, 22, 24, 31, 48, 56, 76, 86]

  • Nhiệm v? Tìm v?trí của s?10 trong mảng

  • Đầu tiên, ta so sánh s?10 với phần t??giữa thì thấy 10 < 22. Th?nên, hãy b?phần bên phải.

  • Tiếp tục với phần bên trái với phần t?giữa là 9. Ta có 10 > 9. Vì th?ta b?phần bên trái.

  • Tiếp tục với phần bên phải: So sánh phần t??giữa (với giữa = (chặn dưới + chặn trên)/2). Ta tìm thấy giá tr?10 ?v?trí 3.

Triển khai thuật toán tìm kiếm nh?phân trong Java

T?ví d?minh họa trên hình ?mục 2, chúng ta có th?triển khai Thuật toán tìm kiếm nh?phân trong chương trình trong Java như sau:

Ví d?triển khai Thuật toán tìm kiếm nh?phân trong chương trình trong Java

Chạy chương trình ta s?có được kết qu?

Phần t?được tìm thấy tại v?trí: 3

Binary Search – Thuật toán tìm kiếm nh?phân là thuật toán quan trọng và được ứng dụng nhiều trong việc lập trình. Việc các thuật toán kết hợp và b?tr?cho nhau là điều không th?tránh khỏi, hi vọng qua bài viết trên, các bạn lập trình viên đã nắm được những kiến thức quan trọng v?Binary Search và đã có th?áp dụng vào trong thực t?công việc.

B?môn Ứng dụng phần mềm
Cao đẳng FPT M?ng c c??c bng ? Hà Nội

The post Binary Search và cách ứng dụng trong Java appeared first on Cao Đẳng FPT M?ng c c??c bng ? xét tuyển.

]]>
//westview-heights.com/tin-tuc-poly/ha-noi-tin-sinh-vien/binary-search-va-cach-ung-dung-binary-search-trong-java.html/feed 0