часть слияния в сортировке слиянием - PullRequest
1 голос
/ 26 июня 2010

у нас есть сортировка слиянием для двух массивов или связанного списка, как я могу написать часть слияния для более чем двух связанных списков? пожалуйста, помогите мне спасибо

Ответы [ 2 ]

0 голосов
/ 26 июня 2010

Рекурсивно разделить набор массивов на два набора массивов, которые необходимо объединить.Когда набор содержит только один массив, верните его.Объедините полученный список из каждого вызова, используя стандартную сортировку слиянием.

 array merge( list_of_arrays )
 {
     if (sizeof(list_of_arrays) == 1)
        return list
     else
        return mergesort( merge( first_half( list_of_arrays ) ), merge( second_half( list_of_arrays ) ) )
 }
0 голосов
/ 26 июня 2010

Либо объединяйте два за раз и объединяйте результат с третьим, либо изменяйте логику объединения, чтобы извлечь элемент min из всех трех списков.

...