一、大致思路
初始化2個最小值,firstmin,secondmin
2.遍歷所有元素,假如當前元素小於firstmin,那麼將更新firstmin,secondmin.如果小於secondmin直接更新secondmin
二、具體實現
public
class
findsecondmin
for(integer i:array)
system.out.
println()
;int result=
findsecondmin
(array,array.length)
; system.out.
println
("第二小的數是: "
+result);}
private
static
intfindsecondmin
(int
a,int n)
else
for(
int i=
2;i)else}}
return secondmin;
}}
TopK問題 求陣列中第K小的數
public class problem 01 findminknums int kheap new int k for int i 0 i k i for int i k i arr.length i return kheap public static void heapinsert int a...
求陣列中的第二大的數 不改變陣列的順序
如果用氣泡排序對數值排序,那麼演算法的效率比較低。一開始我考慮的先求出陣列的最大值和陣列的最小值,然後再迴圈陣列,求出陣列的第二大的值,這個演算法的時間複雜度是o n private static void secondarray int bb aa 0 最大值 int cc aa 0 最小值 fo...
找出第二小的數
求n個整數中第二小的數。相同的整數看成乙個數。比如,有5個數分別是1,1,3,4,5,那麼第二小的數就是3。輸入包含多組測試資料。輸入的第一行是乙個整數c,表示有c組測試資料 每組測試資料的第一行是乙個整數n,表示本組測試資料有n個整數 2 n 10 接著一行是n個整數 每個數均小於100 為每組測...