按照不同节点优先级,分布不同任务算法
回到家里,看了一下第一个for内部的for完全是多余的,优化为:
1 List<int> configs = new List<int> { 1, 2, 1 }; 2 3 List<int> items = new List<int> { 4 1,2,3, 5 4,5,6, 6 7,8,9 7 }; 8 9 int skipCount = 0; 10 11 for (int i = 0; i < configs.Count - 1; i++) 12 { 13 int count = (int)(((decimal)configs[i] / configs.Sum()) * items.Count); 14 15 List<int> tempItems = items.Skip(skipCount).Take(count).ToList(); 16 17 Console.WriteLine("index:{0}-skip:{1}-take:{2}---------------------------", i, skipCount, count); 18 foreach (var tempItem in tempItems) 19 { 20 Console.WriteLine(tempItem); 21 } 22 Console.WriteLine("------------------------------------------------------"); 23 24 skipCount += count; 25 } 26 27 List<int> lastestItems = items.Skip(skipCount).Take(items.Count - skipCount).ToList(); 28 Console.WriteLine("index:{0}-skip:{1}-take:{2}---------------------------", configs.Count - 1, skipCount, items.Count - skipCount); 29 foreach (var lastestItem in lastestItems) 30 { 31 Console.WriteLine(lastestItem); 32 } 33 Console.WriteLine("------------------------------------------------------"); 34 35 Console.ReadKey();
运行结果:
基础才是编程人员应该深入研究的问题,比如:
1)List/Set/Map内部组成原理|区别
2)mysql索引存储结构&如何调优/b-tree特点、计算复杂度及影响复杂度的因素。。。
3)JVM运行组成与原理及调优
4)Java类加载器运行原理
5)Java中GC过程原理|使用的回收算法原理
6)Redis中hash一致性实现及与hash其他区别
7)Java多线程、线程池开发、管理Lock与Synchroined区别
8)Spring IOC/AOP 原理;加载过程的。。。
【+加关注】。