寫乙個函式找出乙個整數陣列中,第二大的數

2021-08-16 00:07:58 字數 779 閱讀 2401

題目:寫乙個函式找出乙個整數陣列中,第二大的數。

演算法分析:

1)假設陣列中的前兩個元素就是最大和第二大,即max和smax;

2)從陣列的第二個元素開始遍歷陣列,當有元素大於max的時候,將max賦值給smax,再將最大的那個元素賦值給max;

3)如果當前元素小於max,並且大於smax,那麼就讓smax當前元素。

演算法實現:

方法一:

#include

#include

#define n 10

int main()

if(s[0]>s[1])

else

int i=0;

for(i=2;i<10;i++)

else

}return smax;

}

方法二:

#include#includeint findsmax(int

*a,int

size)

else

if(a[i] < max && a[i] > smax) //更新次大值

}return smax;

}int main()

; printf("second value = %d\n",findsmax(a,sizeof(a)/sizeof(a[0])));

return

0;}

寫乙個函式找出乙個整數陣列中第二大的數

如果是面試遇到這種型別的題,一定要多考慮一下了,畢竟題目不難,如果直接用排序去解題的話,面試官估計會比較失望了。因為這種型別的題,解法有很多,那麼別人當然是希望得到最高效的解法了。試想如果有一萬個數,如果用排序解答,是不是就浪費了大量的資源去將那些並不重要的數進行了排序。include void f...

找出乙個整數陣列中,第二大的數

寫乙個函式找出乙個整數陣列中第二大的數 include include include define size 10 intarray 隨機產生乙個大小為size的整數陣列 void createarray int array 列印整數陣列 void printarray int array pri...

怎樣編寫乙個程式,把乙個有序整數陣列放到二叉樹中

分析 本題考察二叉搜尋樹的建樹方法,簡單的遞迴結構。關於樹的演算法設計一定要聯想到遞迴,因為樹本身就是遞迴的定義。而,學會把遞迴改稱非遞迴也是一種必要的技術。畢竟,遞迴會造成棧溢位,關於系統底層的程式中不到非不得以最好不要用。但是對某些數學問題,就一定要學會用遞迴去解決。include includ...