面试中常遇到的算法面试题

 Java面试题之冒泡排序:

冒泡排序,听这个名字就可以知道,利用冒泡的方式将最大的(或者最小的,本文介绍最大的)移动到最后一位。

例如一个数组有如下值;

 1 int[] intForArray = {32,15,9,71,2,6,10}; 

排序需要进行的步骤是:

首先将32依次和后面的值进行比较,如果比他大就移动到后面。

第一次排序的顺序应该是:

15,9,32,2,6,10,71;

这是最后一位已经是最大的了,故不需要对最后一位进行排序;

第二次排序就可以忽略掉最后一位;

下来就是:9,15,2,6,10,32;

依次类推;

Java代码具体实现代码如下:

 1     public static int[] maoPao(int[] arr) {
 2 
 3         for (int i = 0; i < arr.length - 1; i++) { // 总共需要比较多少次;
 4             for (int j = 0; j < arr.length - i - 1; j++) { // 每个数需要和多少个之后的数比较;
 5                 if (arr[j] > arr[j + 1]) {
 6                     arr[j] ^= arr[j + 1];
 7                     arr[j + 1] ^= arr[j];
 8                     arr[j] ^= arr[j + 1];
 9                 }
10             }
11         }
12         return arr;
13     }

 

Java面试题之斐波那契数列:

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……

先上代码吧;

 1 public class Test01 {
 2 
 3     public static void main(String[] args) {
 4         int fun = fun(5);
 5         System.out.println("结果是:" + fun);
 6     }
 7 
 8     private static int fun(int i) {
 9 
10         if (i == 1 || i == 2) {
11             return 1;
12         } else {
13             return fun(i - 1) + fun(i - 2);
14         }
15 
16     }
17 }

解析如下:

fun(5) = fun(4) + fun(3);
fun(4) = fun(3) + fun(2);
fun(4) = fun(3) + 1 ;
fun(3) = fun(2) + fun(1);
fun(3) = 2 ;
fun(4) = 2 + 1 ;
fun(5) = 2 + 3 ;
fun(5) = 5 ;

 

持续更新,希望可以帮到各位……

转载于:https://www.cnblogs.com/miss3316/p/8625018.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值