示例#1
0
        public Run(Run[] runs)
        {
            //This constructor takes array of runs and merges it into one output run
            List<int> cream = new List<int>(runs.Count());
            int empty_runs = 0;

            for (int i = 0; i < runs.Count(); i++){
                if ((object)runs[i] is Fake_Run || runs[i] == null)
                    empty_runs++;
                cream.Add(runs[i].Dequeue());
            }
            while (empty_runs != runs.Count()){
                int Imin = cream.IndexOf(cream.Min());

                Values.Enqueue(cream[Imin]);

                if (!runs[Imin].IsEmpty)
                    cream[Imin] = runs[Imin].Dequeue();
                else{
                    cream[Imin] = 999999999;
                    empty_runs++;
                }
            }
        }