【发布时间】:2022-06-10 19:20:38
【问题描述】:
在下面的代码中,我试图检查数组是否使用递归按升序排序;但有一些疑问:
- 我不明白为什么我们使用 arr[0] 和 arr[1] 来代替使用 arr[i] 和 arr[i+1]。
- 我明白为什么我们会传递 arr+1,但为什么我们要使用 size-1 来减小数组的大小?这不应该导致数组的第 n 部分减少吗?
bool isSorted(int *arr, int size){
if(size == 0 || size == 1){
return true;
}
//compare two adjacent elements and reduce the size
if(arr[0] > arr[1]){
return false;
}
bool ans = isSorted(arr+1, size-1);
return ans;
}
【问题讨论】:
-
一定要用递归吗?