在 C++ 中不使用關係運算符查詢陣列中的最小值


在此問題中,我們給定一個由 n 個正元素組成的陣列 arr[]。我們的任務是在不使用關係運算符的情況下在陣列中找到最小值。

程式設計中的關係運算符是用於檢查兩個值之間的關係的運算子。比如 ==(等於)、大於(>)、小於(<)等。

讓我們舉一個例子來理解這個問題,

輸入

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

輸出

1

說明

The smallest element is 1.

解決方案方法

解決此問題的簡單方法是使用迴圈,並檢查陣列所有元素中最小元素。為了查詢兩個給定元素之間的最小元素,我們可以比較當我們兩個都減去 1 時哪個元素首先變成 0。

程式說明我們解決方案的工作原理,

示例

 線上示例

#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

更新於: 2021 年 3 月 12 日

144 次瀏覽

開啟您的 職業

透過完成課程獲得認證

立即開始
廣告
© . All rights reserved.