Chuyển đến nội dung chính

Tìm Phần Tử Lớn Nhất Trong Mảng C++

Bài Toán: Cho một mảng có kích thước N, nhiệm vụ là tìm phần tử lớn nhất trong mảng đã cho.

Ví Dụ:

Input: arr[] = {10, 20, 4}
Output: 20

Input : arr[] = {20, 10, 20, 4, 100}
Output : 100

Phương Pháp 1: Gán Giá Trị MAX và Duyệt Toàn Bộ Danh Sách

Một trong những cách tiếp cận cơ bản và đơn giản nhất để giải quyết vấn đề này là chỉ cần duyệt qua toàn bộ danh sách và tìm giá trị lớn nhất trong số đó.

Thực hiện theo các bước dưới đây để thực hiện thuật toàn này:

  • Tạo một biến max để lưu trữ giá trị lớn nhất trong danh sách
  • Khởi tạo max với phần tử đầu tiên đầu tiên của mảng để bắt đầu so sánh.
  • Sau đó duyệt qua mảng đã cho từ phần tử thứ hai cho đến cuối,với mỗi phần tử:
    • So sánh phần tử hiện tại với max
    • Nếu phần tử hiện tại lớn hơn giá trị max, thì hãy thay thế giá trị của giá trị max bằng phần tử hiện tại.
  • Cuối cùng, trả về và in giá trị của phần tử lớn nhất của mảng được lưu trữ trong giá trị tối đa.

Dưới đây là việc thực hiện phương pháp trên:

// C++ program to find maximum
// in arr[] of size n
#include <bits/stdc++.h>
using namespace std;

int largest(int arr[], int n)
{
   int i;
   
   // Initialize maximum element
   int max = arr[0];

   // Traverse array elements
   // from second and compare
   // every element with current max
   for (i = 1; i < n; i++)
      if (arr[i] > max)
         max = arr[i];

   return max;
}

// Driver Code
int main()
{
   int arr[] = {10, 324, 45, 90, 9808};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << "Largest in given array is "
      << largest(arr, n);
   return 0;
}

// This Code is contributed
// by Shivi_Aggarwal

Output:

Largest in given array is 9808

Độ phức tạp về thời gian: O (N), để duyệt hoàn toàn Mảng.

Tìm phần tử lớn nhất trong mảng
Tìm phần tử lớn nhất trong mảng

Phương pháp 2: Giải pháp đệ quy)

Thuật toán sử dụng đệ quy để duyệt mảng và tìm phần tử lớn nhất.

// C++ program to find maximum
// in arr[] of size n
#include <bits/stdc++.h>
using namespace std;

int largest(int arr[], int n, int i)
{
   // last index
   // return the element
   if (i == n - 1) {
      return arr[i];
   }

   // find the maximum from rest of the array
   int recMax = largest(arr, n, i + 1);

   // compare with i-th element and return
   return max(recMax, arr[i]);
}

// Driver Code
int main()
{
   int arr[] = { 10, 324, 45, 90, 9808 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << "Largest in given array is "
      << largest(arr, n, 0);
   return 0;
}

// This Code is contributed by Rajdeep Mallick

Output:

Largest in given array is 9808

Độ phức tạp thời gian: O (N), trong đó N là kích thước của mảng đã cho.

Phương Pháp 3: Sử Dụng Thư Viện

Sử dụng hàm thư viện: Hầu hết các ngôn ngữ đều có hàm tích hợp kiểu max () có liên quan để tìm phần tử tối đa, chẳng hạn như std :: max_element trong C ++. Chúng ta có thể sử dụng hàm này để tìm trực tiếp phần tử tối đa.

Dưới đây là việc thực hiện phương pháp trên:

// C++ program to find maximum in arr[] of size n
#include <bits/stdc++.h>
using namespace std;

// returns maximum in arr[] of size n
int largest(int arr[], int n)
{
   return *max_element(arr, arr+n);
}

int main()
{
   int arr[] = {10, 324, 45, 90, 9808};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << largest(arr, n);
   return 0;
}

Output:

9808

Độ phức tạp về thời gian: O (N), vì hàm max_element () được tích hợp sẵn mất O (N) thời gian.

The post Tìm Phần Tử Lớn Nhất Trong Mảng C++ first appeared on Techacademy.



source https://techacademy.edu.vn/tim-phan-tu-lon-nhat-trong-mang-c/

Nhận xét

Bài đăng phổ biến từ blog này

Hướng Dẫn Cài Đặt Python Trên Máy Tính?

Python là một ngôn ngữ lập trình phổ biến và được sử dụng rộng rãi trong lĩnh vực phát triển phần mềm và khoa học dữ liệu. Để bắt đầu sử dụng Python trên máy tính của bạn, bạn cần cài đặt nó. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách cài đặt Python trên máy tính một cách dễ dàng. I. Cài Đặt Python Trên Vscode Python là một ngôn ngữ lập trình phổ biến và VS Code là một trình soạn thảo mã nguồn được ưa chuộng. Kết hợp cả hai, bạn có thể tận dụng lợi ích của cả hai công cụ để phát triển ứng dụng Python một cách hiệu quả. Trong bài viết này, chúng tôi sẽ hướng dẫn cách cài đặt Python trên VS Code. Bước 1: Cài đặt VS Code Trước khi bắt đầu, bạn cần cài đặt VS Code trên máy tính của mình. Truy cập trang web vscode.com, tải xuống phiên bản phù hợp với hệ điều hành của bạn và làm theo hướng dẫn trên màn hình để hoàn tất quá trình cài đặt. Bước 2: Cài đặt Extension Python cho VS Code Sau khi cài đặt VS Code, bạn cần cài đặt extension Python để hỗ trợ phát triển ứng dụng Python t...

Phím Tắt Eclipse Thông Dụng Và Tiện Lợi Nhất ! Đọc Ngay Nếu Bạn Vẫn Đang Dùng Chuột

Việc sử dụng các thao tác click chuột nhiều lần trong Eclipse khiến các coder nhàm chán và tốn thời gian, hãy cải tạo nó bằng các phím tắt trong Eclipse. Dưới đây là danh sách một số những phím tắt thông dụng bạn nên biết. phím tắt eclipse (1) Đầu tiên hãy sử dụng phím tắt Ctrl + Shift + L để hiển thị danh sách các phím tắt trong Eclipse. phím tắt eclipse (2) Danh sách tất cả những phím tắt trong Eclipse bạn có thể áp dụng, được chia thành 12 mục khác nhau tùy thuộc vào tác dụng của phím tắt: 1. Quản lý tập tin và dự án Ctrl + N Tạo dự án mới bằng Wizard Ctrl + Alt + N Tạo dự án , tập tin, lớp, vv Alt + F Mở dự án, tệp, v.v. Ctrl + Shift + R Mở Resource (tệp, thư mục hoặc dự án) Alt + Enter Hiển thị và truy cập các thuộc tính tệp Ctrl + S Save tập tin hiện tại Ctrl + Shift + S Save tất cả các tập tin Ctrl + W Đóng tệp hiện tại Ctrl + Shift + W Đóng tất cả các tệp F5 Làm mới nội dung của phần tử đã chọn bằng hệ thống tệp cục bộ 2. Cửa sổ trình chỉnh sửa F1...

Kiểu Date Trong Java

Date trong Java là 1 trong các class mô tả ngày tháng đầu tiên trong Java. Thật đáng tiếc là hầu hết các cách thức của nó đã lỗi thời, và thay vào đó là dùng các cách thức của java.util.Calendar. Nhưng bạn vẫn có thể dùng java.util.Date để mô tả ngày tháng. 1. Các Lớp Date, Time, Calendar Trong Java Java cung cấp 1 số class liên quan tới thời gian và lịch (Calendar), sau đây là danh sách các class này: Class Mô tả java.util.Date 1 lớp đại diện cho ngày tháng năm và thời gian. Tiếc là hầu hết các cách thức của nó đã bị lỗi thời, khuyến cáo là không nên dùng các cách thức đó, tuy nhiên lớp Date vẫn được dùng rỗng rãi. java.util.concurrent.TimeUnit TimeUnit là 1 Enum mô tả các đơn vị ngày tháng năm và thời gian. java.sql.Date 1 lớp mô tả ngày tháng năm. Thông tin về thời gian bị cắt bỏ. Lớp này thường dùng trong JDBC. java.sql.Time 1 lớp mô tả thời gian (Giờ phút giây, milli giây), và không chứa thông tin ngày tháng năm. Lớp này thường dùng trong...