輸出陣列中的最大值與次大值,以及它們的下標

2021-08-19 06:24:15 字數 554 閱讀 6985

#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...