Đệ Quy Tìm Max, Min - Programming - Dạy Nhau Học Trang chủ » Hàm Max Trong C » Đệ Quy Tìm Max, Min - Programming - Dạy Nhau Học Có thể bạn quan tâm Hàm Max Trong Excel Hàm Răng Chuẩn Bao Nhiêu Cái Hàm Răng Chuẩn Có Bao Nhiêu Cái Hàm Răng Chuẩn đẹp Hàm Răng Chuẩn Là Như Thế Nào Đệ quy tìm Max, Min programming c c++ lethanhbinh1997 (Thanh Bình Lê) March 12, 2022, 11:44am #1 Anh chị nào hiểu cách tìm của chương trình tìm Max, Min không chỉ em với ạ, em xem mà không hiểu cách nó chạy ra sao để được giá trị Max, Min int Min(int A[], int n) { if (n == 0) return -1; if (n == 1) return A[0]; else { if (A[n - 1] < Min(A, n - 1)) return A[n - 1]; else return Min(A, n - 1); } } int Max(int A[], int n) { if (n == 0) return -1; if (n == 1) return A[0]; else { if (A[n - 1] > Max(A, n - 1)) return A[n - 1]; else return Max(A, n - 1); } } void main() { unsigned int n; int A[10] = { 4, 6, 3, 19, 22, 34, 67, 54, 15, 24 }; printf("Gia Tri Nho Nhat Cua Mang: %d\n", Min(A, 10)); printf("Gia Tri Lon Nhat Cua Mang: %d\n", Max(A, 10)); } tcm (Người bí ẩn) June 14, 2016, 2:40am #2 lethanhbinh1997: Anh chị nào hiểu cách tìm của chương trình tìm Max, Min không chỉ em với ạ, em xem mà không hiểu cách nó chạy ra sao để được giá trị Max, Min Cái này không nhất thiết phải dùng đệ quy đâu bạn ! Cách 1: Thuật toán: Gán biến Max và Min bằng 1 giá trị bất kỳ trong mảng và dùng vòng lặp để sánh Max và Min với tất cả các giá trị còn lại trong mảng, nếu có giá trị nào lớn hơn cả Max hoặc nhỏ hơn cả Min thì cập nhật giá trị đó và Max và Min, cứ như thế cho đến khi kết thúc vòng lặp sẽ tìm được giá trị Max và Min Cách 2: Thuật toán: Gán biến Max với giá trị bé nhất có thể và biến Min với giá trị lớn nhất có thể. Vậy giá trị lớn nhất và bé nhất là gì ? Bạn #include <limits.h> và gán Max = INT_MIN và Min = INT_MAX nhé ! Sau đó vẫn dùng vòng lặp duyệt mảng, nếu giá trị nào bé hơn cả Min hay lớn hơn cả Max thì cập nhật phần tử đó cho 2 biến Max và Min. Cuối cùng, ta sẽ tìm được Max và Min. Ví dụ code của bạn khai báo mảng A gồm 10 phần tử thì cho vòng lặp chạy từ 0 đến 9 và làm như cách trên ! Còn lại bạn tự tìm hiểu và giải nhé 1 Like lethanhbinh1997 (Thanh Bình Lê) June 14, 2016, 2:41am #3 Bài của mình là bắt buộc dùng đệ quy rồi bạn, mình hiểu cách của bạn rồi nhưng mà đề thì chỉ cho làm theo đệ quy thôi 2 Likes tcm (Người bí ẩn) June 14, 2016, 2:45am #4 Thế thì nhờ các member khác giúp chứ bài này dùng đệ quy cũng rối và mất thời gian mà mình lại không có thời gian 1 Like lethanhbinh1997 (Thanh Bình Lê) June 14, 2016, 2:47am #5 vậy mình cảm ơn bạn đã giúp mình nha 1 Like chichi (chichi) June 14, 2016, 3:11am #6 Ý tưởng tìm min tại vị trí k là đã biết min của a[0] -> a[k-1] xong so sánh gía trị ấy với a[k] thằng nào bé hơn là min, bạn có thể debug để hiểu hơn 1 Like void (void) June 14, 2016, 4:03am #7 #include <iostream> using namespace std; #define MAX(x1, x2) (((x1) > (x2)) ? (x1) : (x2)) #define MIN(x1, x2) (((x1) > (x2)) ? (x2) : (x1)) int max(int *arr, int n) { if (n == 2) { return MAX(arr[0], arr[1]); } return MAX(arr[n - 1], max(arr, n - 1)); } int min(int *arr, int n) { if (n == 2) { return MIN(arr[0], arr[1]); } return MIN(arr[n - 1], min(arr, n - 1)); } int main() { int arr[] = { 1, 7, 3, 4, 5, 6 }; int a = max(arr, 6); int b = min(arr, 6); cout << a << b << endl; return 0; } 1 Like Cu_Chuoi (Củ Chuối) June 14, 2016, 4:51am #8 Mình nói về Min nha, ban đầu đệ quy chạy từ trên xuống, phân tích thành các bài toán nhỏ nhất, đến khi Min(A,1) (ở đây là 4) thì sẽ chạy ngược lên đê so sánh if (A[n - 1] < Min(A, n - 1)) return A[n - 1]; else return Min(A, n - 1); 2 Likes reoteu_ray (Reoteu Ray) June 14, 2016, 4:55am #9 mình thấy đệ quy là pp rất tốn bộ nhớ máy tính và cũng ít khi dùng đến nó , chương trình viết bằng đệ quy thì công nhận là gọn và ngắn thật nhưng tốc độ chạy và ngốn bộ nhớ stack của nó thì kinh khủng… 1 Like lethanhbinh1997 (Thanh Bình Lê) June 14, 2016, 12:13pm #10 Cảm ơn bạn nhiều nha, cách của bạn hay quá lethanhbinh1997 (Thanh Bình Lê) June 14, 2016, 12:14pm #11 Mình đã hiểu cái code của mình rồi, cảm ơn bạn nhiều lắm nha 1 Like lethanhbinh1997 (Thanh Bình Lê) June 14, 2016, 12:15pm #12 Cái này mình đang hỏi về đệ quy đó bạn, mình tìm được lời giải thích cho mình rồi, bạn tham khảo luôn nhé lethanhbinh1997 (Thanh Bình Lê) June 14, 2016, 12:15pm #13 Cái này có trong đề cương ôn thi của mình, mà khi ra đi làm thì đệ quy không được dùng nhiều hả bạn DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Hàm Max Trong C MIN Và MAX Trong C? - HelpEx Tìm Max Và Min Trong Mảng C Tìm Max Min Của 3 Số A B C Nhập Từ Bàn Phím Trong C/C++ (Lập Trình C) Tìm Min Và Max Trong Mảng - Banhoituidap MAX (Hàm MAX) - Microsoft Support Tìm Hiểu Về Thư Viện Algorithm Trong C++ Tìm Giá Trị Lớn Nhất/nhỏ Nhất Trong Mảng Bài Tập - Tìm Min & Max - Số Lớn Nhất & Nhỏ Nhất - Lập Trình C Một Số Hàm Hữu Ích Trong Thư Viện Algorithm C++ (STL) Tìm Giá Trị Lớn Nhất Trong Hàm C++ - 24h68 Phương Thức Max() Trong Thư Viện Math Java - Freetuts Tìm Số Lớn Nhất Trong Mảng C/C++ Cách Sử Dụng Hàm MAX Trong Excel Tính Giá Trị Lớn Nhất Có Ví Dụ