我一直在园子里没见到过java用递归写冒泡排序的,为啥不给通过?管理员,你给个理由!
我是一个小白而已,面试官居然问我,研究过算法吗?用递归写冒泡排序会吗?差点疯掉,说实在的真没怎么用过递归。
我跟他说,你让我用电脑试试,我肯定能整出来,结果面试官没给机会。特此纪念一下吧!
递归是什么?通俗的讲:在方法内部调用自己(相当于现实中的“鬼打墙”,不过我也没遇到过)。
写递归方法,一定要记得给自己留门哈,不然就是只进不出了!(就是for循环一定是能出来的才行)
花了几分钟整出来的,递归冒泡排序分享给各位跟我一样的新手们
1.冒泡排序(递归)
1 public class SortTest { 2 public static void main(String[] args) { 3 int[] arr={12,5,16,3,9,0,158,214,85}; 4 queue(arr); 5 System.out.println(Arrays.toString(arr)); 6 } 7 public static int[] queue(int[] a) { 8 for(int i=1;i<a.length-1;i++){ 9 for(int j=a.length-i;j>0;j--){ 10 if(a[j]<a[j-1]){ 11 int t=a[j]; 12 a[j]=a[j-1]; 13 a[j-1]=t; 14 return queue(a); 15 } 16 } 17 } 18 return a; 19 } 20 } 21 }
2. 从1乘到n的方法(递归)
1 public class SortTest { 2 public static void main(String[] args) { 3 long k=Sort(20); 4 System.out.println(k); 5 } 6 public static long Sort(long n){ 7 if(n==1) 8 return 1; 9 return Sort(n-1)*n; 10 } 11 }
第二个赠送的,博客太短园子管理员不让发。等我学好了之后,会把递归再好好整理一下的。
好了,就这样了,看完了之后,面试官如果再问你,研究过算法吗?
你就可以自豪的回答,我使用递归写过冒泡排序,然后把上面的代码背给面试官就可以了!!
加油吧,和我一样奋起的菜鸟们,别相信什么困难,java不好学的,我只想告诉你的是,只要你敢想,低下头去学,没有什么是你学不会的。因为你正在走的路,正是别人走出来的。
人生没有白走的路,每一步都算数!加油!!!
原文:https://www.cnblogs.com/SpaceKiller/p/10503666.html