如果用氣泡排序對數值排序,那麼演算法的效率比較低。一開始我考慮的先求出陣列的最大值和陣列的最小值,然後再迴圈陣列,求出陣列的第二大的值,這個演算法的時間複雜度是o(n)。
private
static
void
secondarray();
int bb = aa[0];//最大值
int cc = aa[0];//最小值
for (int i = 0; i < aa.length; i++)
if(cc > aa[i])
}system.out.println(bb);
system.out.println(cc);
for (int i = 0; i < aa.length; i++)
}system.out.println(cc);
}
上面這個演算法的時間複雜度雖然是o(n),但是迴圈了兩次,現在考慮只迴圈一次來求陣列的第二大值。
private
static
void
secondarray1();
int bb = aa[0];//最大值
int cc = integer.min_value;//第二大值
for (int i = 0; i < aa.length; i++) else
if(cc < aa[i] && aa[i]< bb)
}system.out.println(cc);
}
找出陣列中第二大的數
給你乙個陣列,求出其中第二大的數 比如陣列a 1,2,3,4,5,6,7,8,9 其中第二大的數為8,返回8即可 分析 一般情況下都是求最大值,呵呵,這道題很有趣。想想也不難,可以在掃瞄最大值的同時,求出第二大的值,就是比當前最大值大的數賦給最大值,然後用第二大的值與先前的最大值比較,如果小,則用先...
找出陣列中第二大的數
include include includeusing namespace std 初始化最大值為a 0 次大值為a 1 遍歷一次,每次比較並更新最大值和次大值,最後就可以得到次大值。這種方法時間複雜度為o n bool invalidinput false int findsecondmax i...
找出陣列中第二大的數
題目 寫乙個函式找出乙個整數陣列中,第二大的數。cpp view plain copy print?include 初始化最大值為a 0 次大值為a 1 遍歷一次,每次比較並更新最大值和次大值,最後就可以得到次大值。intfindsecondmaxvalue int a,intsize else i...