เราได้รับอาร์เรย์ของจำนวนเต็ม ภารกิจคือการค้นหาองค์ประกอบต่ำสุดและสูงสุดของอาร์เรย์ในจำนวนการเปรียบเทียบขั้นต่ำ
ป้อนข้อมูล
Arr[] = { 1,2,4,5,-3,91 }
ผลผลิต
Maximum element : 91 Minimum Element : -3
คำอธิบาย − เพื่อลดจำนวนการเปรียบเทียบ เราจะเริ่มต้นองค์ประกอบสูงสุดและต่ำสุดด้วย Arr[0] และเริ่มจากองค์ประกอบที่ 2 เปรียบเทียบแต่ละค่ากับค่าต่ำสุดและสูงสุดแล้วอัปเดตตามลำดับ
ป้อนข้อมูล
Arr[] = { 10,20,21,31,18,11 }
ผลผลิต
Maximum element : 31 Minimum Element : 10
คำอธิบาย − นอกจากนี้ เพื่อลดจำนวนการเปรียบเทียบ เราจะเริ่มต้นองค์ประกอบสูงสุดและต่ำสุดด้วย Arr[0] และเริ่มจากองค์ประกอบที่ 2 เปรียบเทียบแต่ละค่ากับค่าต่ำสุดและสูงสุดแล้วอัปเดตตามลำดับ
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
เราใช้อาร์เรย์จำนวนเต็มที่มีตัวเลขเป็น Arr[]
-
ฟังก์ชัน getresult( int arr[],int n) คือการค้นหาองค์ประกอบสูงสุดและต่ำสุดที่มีอยู่ในอาร์เรย์ในจำนวนต่ำสุด ของการเปรียบเทียบ
-
หากมีเพียงองค์ประกอบเดียว เราจะเริ่มต้นตัวแปร max และ min ด้วย arr[0] .
-
สำหรับองค์ประกอบมากกว่าหนึ่งรายการ เราจะเริ่มต้น max ด้วย arr[1] และ min ด้วย arr[0]
-
Inside for loop เริ่มเดินข้ามจากองค์ประกอบที่สาม ( i=2 ) จนถึงสุดท้าย
-
ตอนนี้เราจะเปรียบเทียบแต่ละค่า ( arr[i] ) กับค่าต่ำสุดและสูงสุด หากน้อยกว่า min ให้อัปเดต min ด้วย arr[i] หากมากกว่า max ให้อัปเดต max ด้วย arr[i].
-
ในตอนท้ายพิมพ์ผลลัพธ์ที่เก็บไว้ในตัวแปรสูงสุดและต่ำสุด
ตัวอย่าง
#include <stdio.h> #include <math.h> int getresult(int arr[], int n){ int min=0,max=0; /*If there is only one element then return it as min and max both*/ if (n == 1) { min=max=arr[0]; } /* If there are more than one elements, then initialize min and max*/ if (arr[0] > arr[1]){ max = arr[0]; min = arr[1]; } else{ max = arr[1]; min = arr[0]; } for (int i = 2; i<n; i++){ if (arr[i] > max) max = arr[i]; else if (arr[i] < min) min = arr[i]; } printf(" Minimum element: %d", min); printf(" Maximum element: %d", max); } /* Driver program to test above function */ int main(){ int arr[] = {200, 191, 112, -11, 330, 60}; int n = 6; getresult (arr, n); }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Minimum element: -11 Maximum element: 330