Я знаю, что худший случай в объединении - O (nlogn), то же, что и средний случай.
Однако, если данные восходящие или нисходящие, это приводит к минимальному количеству сравнений, и поэтому mergesort становится быстрее, чем случайные. Поэтому мой вопрос: какие входные данные дают максимальное количество сравнений, которые приводят к тому, что mergesort будет медленнее?
Ответ на этот говорит:
Для некоторых алгоритмов сортировки (например, quicksort) начальный порядок элементы могут влиять на количество выполняемых операций. Однако это не делает никаких изменений для mergesort, поскольку это должно будет сделать точно одинаковое количество операций: рекурсивно делить на небольшие массивов, а затем объединить их назад, в общей сложности Θ (nlogn).
Однако это неправильно. В точке у нас есть два подмассива, и мы хотим их объединить, если исходные данные отсортированы, мы будем иметь только n/2 сравнения. Это все элементы первого подмассива с только первым элементом второго массива. Однако мы можем добиться большего. Я ищу эти входные данные.