c++ - 使用递归对数组进行排序

标签 c++ arrays sorting recursion

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

我有一个大小为 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 的数组?

关于c++ - 使用递归对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7975787/

相关文章:

c# - 如何下载整个网页

c++ - 透视投影与光线追踪/光线转换的效率

php - 如何在 PHP 中使用变量名创建新变量?

c - 如何将 malloc 数组传递给另一个函数以更改其值

javascript - 按嵌套数组中的第一个元素对数组数组进行排序

c# - 在 C# 中对 IList 进行排序

c++ - 如何在不保存文件的情况下制作打印屏幕并将其发送到 FTP 服务器?我的工作代码将文件保存到 HDD

c++ - 逗号的左手操作数没有效果?

ArrayList 中的 Javascript 键/值

java - 字符串.split ("_(B")