为一种算法在程序设计语言中广泛应用.是指函数/过程/子程序在运行过程序中直接
或间接调用自身而产生的重入现像. 程序调用自身的编程技巧称为递归( recursion)。 一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型复杂的
问题 层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的
程序就可描述出解题过程所 需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。 用递归思想写出的程序往往十分简洁易懂。
1. /** 2. * 概念介绍: 3. * 递归是一种方法(函数)调用自已编程技术。 4. * 递归就是程序
设计中的数学归纳法。 5. * 例如:tri(n)=1 if n=1 6. * tri(n)=n+tri(n-1) if n>1 7. * 可能 while 循环方法执行的速度比递归方法快,但是为什么采用递归 呢。 8. * 采用递归, 是因为它从概念上简化了问题, 而不是因为它提高效率。 9. */ 10.public static int triangle(int n) {//递归方法,循环调用 11. if (n == 1) { 12. return 1; 13. }
else { 14. return (n + triangle(n - 1)); 15. } 16. } 17. 18. public static int triangle2(int n) {//非递归方法 19. int total = 0; 20. while (n > 0) { 21. total = total + n--; 22. } 23. return total; 24. }
25./** 26. * 总结: 27. * 使用非递归的方式更简洁,更易懂,运行效率更高,为什么还要用递 归的算法呢。 28. * 递归使用使程序规模逐渐降低的方式来解决问题,以这种统一的方式 解决足够复杂的问题。 29. */
public static int fibon(int n){ if(n==1 || n==2){ return 1; }else{ return fibon(n-2)+fibon(n-1); } }
编程显示某一文件目录下的文件名
public void xianshi(){ File file=new File("K:\\有用的
软件和书籍"); if(file.exists()){//判断此抽象路径名表示的文件或目录是否存在。 if(file.isDirectory()){//判断此抽象路径名表示的文件是否是一个目
录。
String[] files=file.list();//返回一个字符串数组,这些字符串
指定此抽象路径名表示的目录中的文件和目录。
for(int i=0;i
冒泡排序的实现
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小 数放在前面,大数放在后面。即在第一趟:首先比较第 1 个和第 2 个数,将 小数放前,大数放后。然后比较第 2 个数和第 3 个数,将小数放前,大数放 后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟 结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可 能由于第 2 个数和第 3 个数的交换,使得第 1 个数不再小于第 2 个数),将 小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是 最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在 整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。 由于在排序过程中总是小