繁体   English   中英

需要帮助来确定给定算法是迭代还是递归

[英]Need help to determine if a given algorithm is iterative or recursive

所以我有一个计算机科学模块的项目,他们要求我们快速执行迭代和合并排序,所以我写了一个算法,但我不确定它是迭代还是递归。

任何反馈将不胜感激,提前致谢!

这是算法(它有效,只需要知道它是否是迭代的)

public static void quickSort(ArrayList<school> x){

    if(x.isEmpty()){        
        return ;
    }
    
    ArrayList<school> smaller = new ArrayList<>();     
    ArrayList<school> greater = new ArrayList<>();      

    school pivot = x.get(0);        // pivot value
    int i;      // incremental counter
    school j;       // looping value

    for( i=1; i < x.size();i++){
        j = x.get(i);                                       
        if( j.getName().compareTo(pivot.getName()) < 0 ){       
            smaller.add(j);
        }else{
            greater.add(j);
        }
    }

    quickSort(smaller);
    quickSort(greater);

    x.clear();

    x.addAll(smaller);
    x.add(pivot);
    x.addAll(greater);

}

quickSort函数是从自身内部调用的,因此这是递归的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM