เราได้รับอาร์เรย์ของจำนวนเต็ม ภารกิจคือการค้นหาองค์ประกอบต่ำสุดและสูงสุดของอาร์เรย์ในจำนวนการเปรียบเทียบขั้นต่ำ
ป้อนข้อมูล
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