Trang chủ » Blog » [Thực hành] Tìm kiếm giá trị lớn nhất và nhỏ nhất

[Thực hành] Tìm kiếm giá trị lớn nhất và nhỏ nhất

bởi CodeGym | 26/12/2023 17:15 | Bài thực hành | Blog

Mục tiêu

Luyện tập sử dụng thuật toán tìm kiếm để tìm kiếm giá trị lớn nhất và nhỏ nhất.

Mô tả- Tìm kiếm giá trị lớn nhất và nhỏ nhất

Vấn đề lập trình máy tính thường liên quan đến việc tìm kiếm các giá trị tối thiểu và tối đa. Trong một cấu trúc dữ liệu được sắp xếp, việc tìm kiếm các giá trị này là một công việc bình thường. Tuy nhiên, tìm kiếm trên một cấu trúc dữ liệu chưa được phân loại là một nhiệm vụ khó khăn hơn.

Hãy bắt đầu bằng việc xác định chúng ta tìm kiếm giá trị nhỏ nhất trên một mảng.

Thuật toán tìm giá trị nhỏ nhất trên một mảng:

  1. Gán phần tử đầu tiên của mảng cho một biến như là giá trị nhỏ nhất.
  2. Bắt đầu lặp qua mảng, bắt đầu với phần tử thứ hai, so sánh mỗi phần tử với giá trị nhỏ nhất hiện tại.
  3. Nếu phần tử hiện tại có giá trị nhỏ hơn giá trị nhỏ nhất hiện tại, gán phần tử hiện tại làm giá trị nhỏ nhất mới.
  4. Chuyển sang phần tử tiếp theo và lặp lại bước 3.
  5. Giá trị nhỏ nhất được lưu trữ trong biến đến khi chương trình kết thúc.

Hãy cài đặt thuật toán trên.

Các bước thực hiện

Bước 1: Xây dựng hàm findMin() nhận vào một mảng. Hàm làm nhiệm vụ tìm giá trị nhỏ nhất của mảng nhận vào và trả về giá trị nhỏ nhất đó.

function findMin($arr) {
   $min = $arr[0];
   for ($i = 1; $i < count($arr); ++$i) {
      if ($arr[$i] < $min) {
         $min = $arr[$i];
      }
   }
   return $min;
}

Bước 2: Sử dụng hàm findMin() vừa cài đặt

$nums = [];
for($i = 0; $i < 100; ++$i){
   $nums[$i] = rand(1, 101);
}
foreach($nums as $num) {
   echo $num . " ";
}
$minValue = findMin($nums);
echo "</br>";
echo "The mininum value is: " . $minValue;

Bước 3: Đây là kết quả của chương trình

tìm kiếm giá trị lớn nhất và nhỏ nhất

Bước 4: Cài đặt thuật toán tìm giá trị lớn nhất

Thuật toán để tìm giá trị lớn nhất hoạt động theo một cách tương tự. Chỉ định phần tử đầu tiên của mảng là giá trị lớn nhất và sau đó lặp phần còn lại của mảng, so sánh từng phần tử với giá trị cực đại hiện tại. Nếu phần tử hiện tại lớn hơn giá trị cực đại hiện tại, giá trị của phần tử đó được lưu trữ trong biến.

Xây dựng hàm findMax():

function findMax($arr) {
   $max = $arr[0];
   for ($i = 1; $i < count($arr); ++$i) {
      if ($arr[$i] > $max) {
         $max = $arr[$i];
      }
   }
   return $max;
}

Bước 5: Xây dựng chương trình tìm cả giá trị nhỏ nhất và giá trị lớn nhất của một mảng.

$nums = [];
for($i = 0; $i < 100; ++$i) {
   $nums[$i] = rand(1,101);
}
foreach($nums as $num) {
   echo $num . " ";
}

$minValue = findMin($nums);
echo "<br/>";
echo "The minimum value is: " . $minValue;

$maxValue = findMax($nums);
echo "<br/>";
echo "The maximum value is: " . $maxValue;

Bước 6: Thực thi chương trình quan sát kết quả:

Trên đây CodeGym đã cùng với bạn luyện tập sử dụng thuật toán tìm kiếm để tìm giá trị nhỏ nhất/lớn nhất. Hãy chụp ảnh màn hình và nộp bài thực hành của bạn trên CodeGymX để cùng nhau luyện tập nhé!

Download - Giáo trình thuật toán

10 + 8 =

Tags:

0 Lời bình

Gửi Lời bình

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

BÀI VIẾT LIÊN QUAN

BẠN MUỐN HỌC LẬP TRÌNH?

GỌI NGAY

098 953 44 58

Đăng ký tư vấn lộ trình học lập trình

Đăng ký tư vấn, định hướng lộ trình học và giải đáp các thắc mắc về ngành nghề – Miễn phí – Online.

12 + 9 =

TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM
TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM