使用递归对数组进行排序

Sort an array with recursion

本文关键字:排序 数组 递归      更新时间:2023-10-16

首先这是一个家庭作业,我只是在寻找一些使用递归的指针。

我有一个大小为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元素数组的前n-1个元素。然后将第n个元素放在n-1个排序元素中的适当位置。我想我不明白如何排序数组的前n-1个元素?

要求使用递归。你的问题对大小为n的数组进行排序。第一步是对数组中的n-1个元素进行排序。

考虑m = n-1。你能把你的问题应用到一个大小为m的数组吗?即对前m-1个元素进行排序,然后将第m个元素放在正确的位置?

考虑k = m-1。你能对大小为k的数组做同样的事情吗?

你知道如何使用递归来解决这个问题吗?

也要考虑如何结束递归;如何处理大小为1的数组?