Рекурсивная сортировка фон Неймана (слиянием)

 
0
 
C++
ava
prrock94 | 19.03.2013, 15:02
Нужна рекурсивная версия сортировки фон Неймана (сортировка слиянием)
На форуме нашёл только итеративный способ реализации алгоритма: http://forum.vingrad.ru/forum/s/b256fe8f32...pic-182453.html

Помогите с рекурсивной реализацией, пожалуйста...  smile 
Comments (3)
ava
baldina | 20.03.2013, 14:12 #
из того поста:

void mergeSort( int *a, int lb, int rb )
{
  int split;
  if( lb < rb )                     // если есть более 1 элемента происходит деление
   {
   split = (lb + rb)/2;             // делим массив
   mergeSort( a, lb, split );       // сортировать левую половину
   mergeSort( a, split+1, rb );     // сортировать правую половину
   merge( a, lb, split, rb );       // слить результаты в общий массив
   }
}

и что тут итеративного?
или предлагается циклы в merge на рекурсию заменить? в вики, на которую вы дали ссылку, слияние описано так
Цитата


3.2. Слияние двух подмассивов в третий результирующий массив.

На каждом шаге мы берём меньший из двух первых элементов подмассивов и записываем его в результирующий массив. Счетчики номеров элементов результирующего массива и подмассива из которого был взят элемент увеличиваем на 1.


итерация, однако
ava
prrock94 | 24.03.2013, 20:27 #
Baldina, ладно, спасибо. Совсем без итерации там, видимо, никак... Попробуем этот ко переписать...)
ava
baldina | 25.03.2013, 10:53 #
Цитата (prrock94 @  24.3.2013,  20:27 findReferencedText)
Совсем без итерации там, видимо, никак

любую итерацию можно заменить на рекурсию, и наоборот. только зачем?
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit