算法-二分搜索-找出最大值和次大值
生活随笔
收集整理的這篇文章主要介紹了
算法-二分搜索-找出最大值和次大值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
二分搜索
<2>找出最大值和第二大值 時間復雜度O(n)
class Program {static void Main(string[] args){List<int> list = new List<int> { 10, 3, 6, 4, 7, 1, 9, 2 };var v = getMax(list, 0, list.Count - 1);}static (int, int) getMax(List<int> list, int start, int end){if (start!=end){int middle = (start + end) / 2;var left = getMax(list, start, middle);var right = getMax(list, middle + 1, end);var temp = new List<int> { left.Item1, left.Item2, right.Item1, right.Item2 };temp.Sort();return (temp[2], temp[3]);}elsereturn (int.MinValue, list[start]);} }總結
以上是生活随笔為你收集整理的算法-二分搜索-找出最大值和次大值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 硬盘恢复数据一次还可以恢复第二次吗硬盘恢
- 下一篇: 算法-连续项的最大和问题(最大子数组问题