Сортировка слиянием использует рекурсию, поэтому очень важно сначала узнать о рекурсии.

Таким образом, рекурсия — это функция, которая будет продолжать вызывать себя до тех пор, пока не перестанет удовлетворять своему базовому условию. Итак, какое базовое состояние сейчас?

Базовое условие — это условие, при котором рекурсия перестанет вызывать себя. Базовое условие является обязательным в рекурсии, иначе оно застрянет в бесконечности.

Теперь поговорим о сортировке слиянием. Сортировка слиянием Разделите массив на два Два до тех пор, пока длина массива не станет единицей, как только длина массива достигнет единицы, запустится функция слияния, которая примет два массива в качестве параметра и поместит их в новый массив. Разделение массива выполняется рекурсией. См. строку № 10. Мы вызываем функцию mergeSort в функции MergeSort. Базовое состояние указано в строке №. 4.

Вы заметили, что в строке номер 10 в функции mergeSort мы вызываем функцию слияния. Это функция, которая возьмет два массива и поместит их в отсортированном порядке в новый массив.

Мы используем цикл while в функции слияния, и он разорвет цикл, когда он не будет удовлетворять условию цикла.

Условие состоит в том, что LeftIndex должен быть меньше длины левого массива, а условие состоит в том, что RightIndex должен быть меньше длины правого массива. Внутри цикла мы проверяем, меньше ли элемент левого массива, чем правый элемент массива, тогда мы добавим его в массив результатов и увеличим +1 в левом индексе. В противном случае то же самое будет сделано с правым массивом. После цикла while мы объединим левый и правый массивы из LeftIndex и RightIndex. И тогда мы вернем массив результатов.