Я кодировал отдельную быструю сортировку и отдельную распределенную сортировку в Apache spark для сортировки некоторых слов.
Полагаю, Apache spark также использует быструю сортировку / Tim-Sort в качестве алгоритма сортировки по умолчанию.
Я записал их время работы.
Итак, вопрос в том, что заставляет Apache выполнять сортировку быстрее, чем Quicksort самостоятельно?
Вот искровой код, который сортирует слова по длине
val A=lowercaseWords.sortBy(x=>x.length(),true,10)
а вот и отдельная быстрая сортировка
def QuickSort(lst:List[String]):List[String]=lst match{
case Nil =>lst
case h::Nil=>lst
case pivot:: t=>
val(less,greater)=t.partition(_< pivot)
QuickSort(less)::: (pivot::QuickSort(greater))
}
}
Я пытаюсь найти фактор X такой, что O (DisSort) = X O (QuickSort)