如我有一个List<double>[1,2,3,41,55,66,77,81,92,100],我现在有一个值 35 如何最快的插入到排序的位置
如我有一个List<double>
[1,2,3,41,55,66,77,81,92,100],从小到大排列好的
然后,我现在有一个值 35 如何最快的插入到排序的位置?
谢谢
[解决办法]
比较简单的就用二分法
[解决办法]
轮询一次找到比该值大的索引在哪插入 这个时间复杂度应该最低吧
[解决办法]
你可以先插入,再排序.
[解决办法]
先add进去,再sort
[解决办法]
可以用 二分法 比如要插入数为n 先取 数组的中间索引的数比较 如果索引不是中间则取整 10个则取第5个数66(从0开始)if (n〉66) 再取索引 0-5 的中间值3 对应数字为41
依次类推 即可插入 (综合速度最快)
[解决办法]
对于几个数据而言,如果你用这个那个的算法,未必会快,所以算法是对于大量数据会有明显的效率提高
[解决办法]
List<double> list = new List<double>{ 1, 2, 3, 41, 55, 66, 77, 81, 92, 100 };
list.Add(35);
list.Sort();