21xrx.com
2024-11-22 08:10:49 Friday
登录
文章检索 我的文章 写文章
Java面试必备:常见算法题解析与代码案例
2023-06-12 16:21:15 深夜i     --     --
Java面试 算法题 代码案例

在Java开发者的职业生涯中,算法是一个不可避免的话题。无论是在面试中还是实际项目中,算法的应用都非常广泛。因此,掌握常见的算法题是非常必要的。在这里,我们将介绍一些Java面试中常见的算法题,并提供相应的代码案例。

1. 二分查找

二分查找是一种经典的算法,它可以在已排序的数组中查找指定的值。其实现方式十分简单,代码如下:


public static int binarySearch(int[] nums, int key) {

  int left = 0;

  int right = nums.length - 1;

  while (left <= right) {

    int mid = (left + right) / 2;

    if (nums[mid] == key)

      return mid;

     else if (nums[mid] < key) {

      left = mid + 1;

    } else

      right = mid - 1;

    

  }

  return -1;

}

2. 快速排序

快速排序是一种常见的排序算法,其基本思想是选一个基准数,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后按此方法对这两部分数据分别进行快速排序,以达到整个序列有序的目的。其代码如下:


public static void quickSort(int[] nums, int left, int right) {

  if (left < right) {

    int i = left;

    int j = right;

    int temp = nums[left];

    while (i < j) {

      while (i < j && nums[j] >= temp)

        j--;

      

      if (i < j) {

        nums[i++] = nums[j];

      }

      while (i < j && nums[i] < temp) {

        i++;

      }

      if (i < j) {

        nums[j--] = nums[i];

      }

    }

    nums[i] = temp;

    quickSort(nums, left, i - 1);

    quickSort(nums, i + 1, right);

  }

}

3. 斐波那契数列

斐波那契数列是一个经典的数列,其前两个数为0和1,从第三项开始,每一项都等于前两项之和。其代码如下:


public static int fibonacci(int n) {

  if (n < 2) {

    return n;

  }

  int pre1 = 1;

  int pre2 = 0;

  int res = 0;

  for (int i = 2; i <= n; i++) {

    res = pre1 + pre2;

    pre2 = pre1;

    pre1 = res;

  }

  return res;

}

以上就是Java面试中常见的算法题和相应的代码案例。掌握这些算法题,可以帮助我们更好地应对面试和实际项目中的问题。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复