尋找第二問題

2022-05-15 10:29:40 字數 855 閱讀 3440

2019-05-16    20:37:06

1.問題描述:在實際問題中,通常會遇到許多第二的問題。比如:第二名,第二大和第二小等。在已知的n個資料中找出其中第二小的資料。

2.根據問題描述,利用陣列a儲存已知資料,定義兩個變數,min1和min2,分別用來儲存資料中的第一小值和第二小值,對已知數字進行比較之後,便可從中選出第二小的資料,輸出即可。此演算法的時間複雜度為o(n).

3.演算法說明

型別名稱

含義演算法

second2(int a,int n)

一趟遍歷求第二小資料

形式引數陣列

a存放已知資料

形式引數變數

n資料個數

變數min1

最小值變數

min2

第二小值

4.**實現

#includeint second2(int a,int

n) //second2函式找出第二小值

else

for(i=2;i) //從三個數開始遍歷完

if(a[i]

else

min2=a[i]; //否則,若它位於最小值與第二小值中間,將它賦給第二小值

}return

(min2); //返回第二小值

} /*主函式輸入n個數,儲存在a陣列中,呼叫second2函式,找出第二小值。*/

intmain()

5.執行結果

1130 尋找第二小的數

描述 求n個整數中第二小的數。相同的整數看成乙個數。比如,有5個數分別是1,1,3,4,5,那麼第二小的數就是3。輸入輸入包含多組測試資料。輸入的第一行是乙個整數c,表示有c組測試資料 每組測試資料的第一行是乙個整數n,表示本組測試資料有n個整數 2 n 10 接著一行是n個整數 每個數均小於100...

尋找陣列中第二小的元素

尋找陣列中第二小的元素 示例 一 先把陣列進行公升序排序 排完序後再進行遍歷比較 public static void main string args 氣泡排序 for int i 0 i arr.length 1 i int secondnum arr 0 for int i 0 isecond...

OJ 1130 尋找第二小的數

描述 求n個整數中第二小的數。相同的整數看成乙個數。比如,有5個數分別是1,1,3,4,5,那麼第二小的數就是3。輸入輸入包含多組測試資料。輸入的第一行是乙個整數c,表示有c組測試資料 每組測試資料的第一行是乙個整數n,表示本組測試資料有n個整數 2 n 10 接著一行是n個整數 每個數均小於100...