Сортировать массив с рекурсией - PullRequest
0 голосов
/ 02 ноября 2011

Для начала это домашнее задание, и я просто ищу несколько указателей по использованию рекурсии.

У меня есть массив случайных чисел psuedo размера n.Мне нужно отсортировать массив от самого низкого до самого высокого.Ниже приведена рекурсивная функция сортировки, которую я создал, но я знаю, что мне не хватает фрагмента, но я не уверен, что.

template <typename T>
void sort_array_recur(T* random_array,T n)
{
//stop case
    if(n = 1 )
    {
        if(random_array[n] < random_array[ n + 1 ])
        {
            T temp = random_array[n + 1];
            random_array[n] == random_array[n + 1];
            random_array[n + 1] == temp;
        }

    }
    else
    {
        sort_array_recur(random_array, (n - 1));

    }



}

Я думаю, что мне не хватает какой-то функции вставки, которая также нуждается вбыть вызванным рекурсивно.Я также искал вокруг, и ничто не кажется определенным для моей ситуации (или по крайней мере я не мог понять это как таковой).Спасибо за ваше время заранее.

РЕДАКТИРОВАТЬ:

Я думаю, я забыл упомянуть, что в спецификации говорится "отсортировать первые n-1 элементов из n-элементамассив. Затем поместите n-й элемент в правильное положение в n-1 отсортированных элементов ".Я думаю, я не понимаю, как отсортировать первые n-1 элементов массива?

1 Ответ

1 голос
/ 02 ноября 2011

Вас просят использовать рекурсию.Ваша проблема сортирует массив размера n.Первым шагом является сортировка n-1 элементов этого массива.

Рассмотрим m = n-1.Можете ли вы применить свою проблему к массиву размера m?т.е. отсортировать первые элементы m-1, а затем поместить m-й элемент в правильное положение?

Рассмотрим k = m-1.Можете ли вы сделать то же самое с массивом размера k?

Видите ли вы, как использовать рекурсию с этой проблемой?

Также подумайте, как вы закончите рекурсию;что вы будете делать с массивом размера 1?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...