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