如果單獨求陣列的最大值或者最小值,那麼必須要做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 因為增加的複雜性導致他們很難找到自己真正需要...