【发布时间】:2021-04-19 08:34:11
【问题描述】:
为什么在递归调用 BubbleSort 函数之前需要使用 return 语句?
没有返回语句:没有输出
void BubbleSort(int arr[], int n, int j)
{
if(n == 1)
return;
if(j == n - 1)
{
BubbleSort(arr, n - 1, 0);
}
if(arr[j] > arr[j + 1])
{
swap(arr[j], arr[j + 1]);
}
BubbleSort(arr, n, j + 1);
return;
}
with return 语句:给出正确的输出
void BubbleSort(int arr[], int n, int j)
{
if(n == 1)
return;
if(j == n - 1)
{
return BubbleSort(arr, n - 1, 0);
}
if(arr[j] > arr[j + 1])
{
swap(arr[j], arr[j + 1]);
}
BubbleSort(arr, n, j + 1);
return;
}
【问题讨论】:
-
如果你不使用return,当最新的递归函数返回时,你会让你的程序继续执行,它将执行位于函数底部的
BubbleSort(arr, n, j + 1)。