【发布时间】:2015-09-02 21:58:51
【问题描述】:
public class insSort {
int i,j,key; //j=1
public void rec(int a[],int pos){
if(pos>a.length-1){
return;
}
key= a[pos];
i=pos-1;
while((i>=0)&&(a[i]>key)){//swapping
a[i+1]=a[i];
i--;
a[i+1]=key;
}
pos++;
rec(a,pos);//post order
}
可以认为是插入排序吗?还是应该有序? 递归算法按顺序使用是一种普遍做法吗?如果是,为什么会这样?
【问题讨论】:
-
我不熟悉您在这里使用“in-order”和“post-order”。你能解释一下你的意思吗?你是问在当前做工作是否正常,然后做递归而不是递归到完全深度并在出路时做工作?
-
@JimMischel 没错!如果代码没有首先深入,它不会被限定为递归吗?
-
没有什么说递归必须首先深入。例如,考虑如何递归地扫描目录树。您将访问目录节点,然后访问它的所有子节点。或者对二叉树进行预排序或中序扫描。两者都是递归的。
标签: algorithm sorting tree inorder postorder