Я пытаюсь реализовать простой сортировку слияния, используя вспомогательный массив. У меня есть type byString []string
, который реализует методы Less, Swap, and Len
. Это в основном следующий интерфейс Go's sort
.Go - Как скопировать фрагмент интерфейса?
Однако у меня возникли трудности с выбором наилучшего маршрута для копирования фрагмента byString
во временный массив.
Пожалуйста, помогите мне выйти из мира полиморфизма Java, чтобы он работал с Go.
func merge(data Interface, lo, mid, hi int) {
i, j := lo, mid+1
// How do I copy data's elements to a new slice called aux?
}
'sort.Interface' предназначен для' sort.Sort'. Это не подходит для сортировки не-на месте, например, для сортировки слиянием. –
Возможно, вы захотите решить вопрос о том, почему вы реализуете сортировку слияния, в первую очередь, когда пакет 'sort' обеспечивает превосходные возможности сортировки и двоичного поиска. –
Он мог бы реализовать типизированную версию. – OneOfOne