Kỹ thuật đặt lính canh được sử dụng rất là nhiều nhưng đôi khi các bạn lại không hề biết đó chính là kỹ thuật này, vì thế trong bài này tôi sẽ đề cập đến kỹ thuật này hy vọng các bạn biết và lỡ ai hỏi thì biết để trả lời nhé
1. Kỹ thuật đặt lính canh là gì?
Chúng ta sẽ phân tích một ví dụ trong thực tế như sau.
Ví dụ 1: Tôi muốn tìm người cao nhất trong lớp học
Giải pháp của tôi như sau, trước tiên chọn một bạn làm mẫu rồi lần lượt so sánh với các bạn còn lại, nếu bạn nào cao hơn thì đổi chỗ cho bạn làm mẫu đó và người bạn cao hơn, lúc này người bạn cao hơn sẽ đứng làm mẫu. Và cứ như vậy cho đến hết, kết quả là người làm mẫu cuối cùng để canh chính là người cao nhất. Ta gọi đây là kỹ thuật đặt lính canh.
Ví dụ 2: Dùng kỹ thuật đặt lính canh tìm giá trị lớn nhất của 3 số $a
và $b
và $c
.
Cách giải như sau: Khởi tạo một biến $max
để chứa giá trị lớn nhất.
Bước 1: Giả sử biến lớn nhất là biến $a
, tức là ta gán $max = $a;
Bước 2: So sánh biến $max
với $b
, nếu $b
lớn hơn $max
thì ta gán$max = b;
Bước 3: So sánh biến $max
với $c
, nếu $c
lớn hơn$max
thì ta gán $max = c;
Cuối cùng biến $max
chứa giá trị lớn nhất. Sau đây là hàm tìm giá trị lớn nhất:
1
2
3
4
5
6
7
8
9
10
11
|
function tim_max( $a , $b , $c ) { $max = $a ; if ( $max < $b ){ $max = $b ; } if ( $max < $c ){ $max = $c ; } return $max ; } |
2. Khi nào nên sử dụng kỹ thuật đặt lính canh
Kỹ thuật đặt lính canh dùng khi bạn muốn duyệt qua danh sách và chọn một phần tử có đặc điểm đặc biệt nào đó.
Kỹ thuật này hay dùng để tìm min max, giá trị lớn nhất, nhỏ nhất, số nguyên tố lớn nhất, số nguyên tố nhỏ nhất … của một mảng danh sách.
Đó là các ví dụ thôi chứ không phải là tất cả trường hợp, nếu bạn dùng quen rồi thì sẽ biết lúc nào dùng đến.
3. Lời kết
Kết thúc bài này tôi hy vọng bạn hiểu được định nghĩa thế nào là kỹ thuật đặt lính canh là quá được rồi. Thực tế thì khi làm web bạn sẽ phải sư dụng kỹ thuật này khá nhiều đấy. Chúc các bạn thành công.
Theo:freetuts.net