Я считаю, что рекурсивная сортировка слиянием может быть выполнена только с массивом в качестве параметра: http://en.wikipedia.org/wiki/Merge_sort
Редактировать: Я думаю, вы могли бы пропустить индекс следующим образом:
function bubble_sort(arr)
{
for (i=0 to arr.length-1)
{
if(arr[i] > arr[i+1])
{
swap(arr, i);
return bubble_sort(arr);
}
}
return arr;
}
Это не идеальная сортировка пузырьков, поскольку начальный индекс всегда равен нулю.Сложность все еще O (n ^ 2).Если вы готовы клонировать массив (и потратить впустую много памяти), тогда вы можете заменить
return bubble_sort(arr);
на:
return combineArrays(arr.subArray(0, i), bubble_sort(arr.subArray(i, n)));
Тогда это правильный, хотя и бесполезный способдостижения рекурсивной пузырьковой сортировки только с массивом в качестве параметра.