簡單的問題往往不簡單之同時求陣列的最大值和最小值

2021-10-04 02:44:47 字數 679 閱讀 6220

如果單獨求陣列的最大值或者最小值,那麼必須要做n-1次比較。

以下就以求最小值為例來說明,詳細**如下(talk is cheap, show me the code):

int minimum( vector& vec )

else

return min;

}}

那麼是否同時求乙個陣列最大值的時候最優解就是進行2*(n-1)次比較操作???

實際上有更好的解法,將陣列兩個數一對,每對每對的比較。首先每對內部可以比較出大小,將大的和陣列剩下的每對中較大的比較,這樣就可以求出最大值。類似的可以求出最小值。

code 如下:

///    這裡首先不考慮陣列長度小於2的情況;

vectormax_min( vector& vec )

else

for ( int i = 1; i < (n-1)/2; i++ )

if ( vec[2*i+1] <= min )

}else

if ( vec[2*i] <= min )}}

vectorresult;

result.push_back(max);

result.push_back(min);

return result;

}

簡單的設計不簡單

最近看了 簡約至上 這本書,這本文章總結一下。推薦給對互動設計感興趣的童鞋。話說簡單 首先人們喜歡簡單 值得信賴 適應性強的產品。所以我們才會費盡心力去設計簡單的產品。人們喜歡簡單的產品原因有 1 產品的功能越多,就越難發現真正對使用者有價值的新功能。2 因為增加的複雜性導致他們很難找到自己真正需要...

簡單的設計不簡單

最近看了 簡約至上 這本書,這本文章總結一下。推薦給對互動設計感興趣的童鞋。話說簡單 首先人們喜歡簡單 值得信賴 適應性強的產品。所以我們才會費盡心力去設計簡單的產品。人們喜歡簡單的產品原因有 1 產品的功能越多,就越難發現真正對使用者有價值的新功能。2 因為增加的複雜性導致他們很難找到自己真正需要...

簡單的設計不簡單

最近看了 簡約至上 這本書,這本文章總結一下。推薦給對互動設計感興趣的童鞋。話說簡單 首先人們喜歡簡單 值得信賴 適應性強的產品。所以我們才會費盡心力去設計簡單的產品。人們喜歡簡單的產品原因有 1 產品的功能越多,就越難發現真正對使用者有價值的新功能。2 因為增加的複雜性導致他們很難找到自己真正需要...