2016-10-04 5 views
1

Мне нужна помощь здесь У меня есть массив, который мне нужно отсортировать в разных потоках. Когда сортировка закончена, я получаю несколько подсписок отсортированных элементов, т. Е.merge 2 или больше списков/массивов, сохраняющих заказ от самого маленького элемента до самого большого

-124,5 -9,03 0 13,2

-99,3 12,6 189,034 200,0

уведомление, может быть больше подсписков Если есть какой-то способ объединить эти подсписки в одно спасении сортировки порядок (от самого маленького элемента к самому большому) в приведенном списке?


решаемые

использовал часть кода из предыдущего проекта

public static T[] ConcatArrs<T>(T[] left, T[] right) where T : System.IComparable<T> 
    { 
     T[] result = new T[left.Length + right.Length]; 
     int lc = 0, rc = 0, i = 0; 

     for(i = 0; i < left.Length + right.Length; i++) 
     { 
      if (lc == left.Length) 
      { 
       result[i] = right[rc]; 
       rc++; 
       continue; 
      } 

      if (rc == right.Length) 
      { 
       result[i] = left[lc]; 
       lc++; 
       continue; 
      } 

      if (left[lc].CompareTo(right[rc]) <=0) 
       result[i] = left[lc++]; 
      else 
       result[i] = right[rc++]; 
     } 

     return result; 
    } 

ответ

0

Вы можете использовать метод AddRange() от List<T> для достижения этой цели, как это хранители заказ.

var firstList = new List<double> { -124.5, -9.03, 0, 13.2, }; 
var secondList = new List<double> {-99.3, 12.6, 189.034, 200.0}; 

firstList.AddRange(secondList); 
+0

Ну, это просто объединяет два списка, я получаю результат как список 1 + список, когда мне нужно получить новый список, отсортированный от самого маленького до самого большого –

Смежные вопросы