Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค้นหาค่าต่ำสุดในอาร์เรย์โดยไม่ต้องใช้ตัวดำเนินการเชิงสัมพันธ์ใน C++


ในปัญหานี้ เราได้รับอาร์เรย์ arr[] ที่ประกอบด้วยองค์ประกอบที่เป็นบวก n รายการ หน้าที่ของเราคือค้นหาค่าต่ำสุดในอาร์เรย์โดยไม่ต้องใช้ตัวดำเนินการเชิงสัมพันธ์

ตัวดำเนินการเชิงสัมพันธ์ในการเขียนโปรแกรมคือตัวดำเนินการที่ใช้ตรวจสอบความสัมพันธ์ระหว่างสองค่า ชอบ ==(เท่ากับ) มากกว่า (>) น้อยกว่า (<) เป็นต้น

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

อินพุต

arr[] = {4, 2, 5, 1, 7}

ผลลัพธ์

1

คำอธิบาย

The smallest element is 1.

แนวทางการแก้ปัญหา

วิธีง่ายๆ ในการแก้ปัญหาคือการใช้ลูปและตรวจสอบองค์ประกอบขั้นต่ำจากองค์ประกอบทั้งหมดของอาร์เรย์ สำหรับการค้นหาองค์ประกอบขั้นต่ำระหว่างองค์ประกอบที่กำหนดทั้งสอง เราสามารถเปรียบเทียบว่าองค์ประกอบใดกลายเป็น 0 ก่อนเมื่อเราลดค่าทั้งสองลง 1

โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา

ตัวอย่าง

#include <iostream>
using namespace std;
int findMin(int a, int b) {
   int minVal = 0;
   while (a && b) {
      minVal++;
      a--;
      b--;
   }
   return minVal;
}
int findMinimumElement(int arr[], int n) {
   int minVal = arr[0];
   int i = (n - 1) ;
   while(i){
      minVal = findMin(minVal, arr[i]);
      i--;
   }
   return minVal;
}
int main() {
   int arr[] = {4, 2, 5, 1, 7};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"The minimum element is "<<findMinimumElement(arr, n);
   return 0;
}

ผลลัพธ์

The minimum element is 1