#include
int main(void)
if(a[0]>a[1])
else
//設定兩個變數用來儲存最大值與次大值下標
for(i=2;i<10;++i)
else
if(a[i]>a[index_sec]) //若a[i]沒有最大值大,但是比次大值大,則a[i]是當前次大值,index_sec存當前下標
index_sec=i;
}printf("max=%d and it's index=%d\nsecond=%d and it's index=%d",a[index_max],index_max,a[index_sec],index_sec);
return 0;
}時間複雜度:o(n)
空間複雜度:o(n)
對上述**進行優化,即index_max和index_sec的初始化問題;
index_max=0;
index_sec=1;
for(i=1;i<10;++i) ... ...
這樣會使**看起來更簡明。
找出陣列中的最大值和次大值
給定乙個含有n個元素的整型陣列,求其最大值和次大值 思想和上一題類似,同樣是用分治法,先求出左邊的最大值leftmax和次大值leftsecond,再求出右邊的最大值rightmax和次大值rightsecond,然後合併,如何合併呢?分情況考慮 1 如果leftmax rightmax,那麼可以肯...
求出陣列的最大值和次大值
求陣列的最大值相對來說是比較簡單,只需要遍歷一遍陣列,不斷更新陣列的最大值,直到遍歷完成。自然語言描述 1.初始化最大值的角標 2.遍歷陣列,比較當前的最大值角標的元素和遍歷得到陣列元素的大小 如果陣列元素大於當前最大值,更新最大值角標為遍歷到的陣列元素角標,直到遍歷完成程式語言描述 int get...
獲取陣列中的最大值和次大值以及最小值和次小值
昨天參加leetcode的周賽的時候,寫 的過程中遇到了需要獲取遍歷過程 現的最小值和次小值的場景。由於之前沒有認真思考過這個邏輯,導致當時浪費了不少時間。現在把這個邏輯好好梳理一下。下面以最小值和次小值為例。首先需要宣告兩個變數 first min,second min float inf flo...