21xrx.com
2025-07-10 14:05:15 Thursday
文章检索 我的文章 写文章
Java面试必备:常见算法题解析与代码案例
2023-06-12 16:21:15 深夜i     24     0
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面试中常见的算法题和相应的代码案例。掌握这些算法题,可以帮助我们更好地应对面试和实际项目中的问题。

  
  

评论区