21xrx.com
2025-06-17 19:00:30 Tuesday
文章检索 我的文章 写文章
用 Java 解决算法问题
2023-06-15 17:24:44 深夜i     7     0
Java 排序算法

解决算法问题是程序员不可回避的任务,无论是应用开发还是系统开发都需要掌握各种算法。Java 作为一门高级编程语言,也有自己独特的算法解决方案。在这篇文章中,我们将介绍一些 Java 中经常用到的算法及其代码案例。

1. 排序算法

排序算法是程序员必须要掌握的基础算法之一。Java 提供了不同的排序算法,如冒泡排序、快速排序、选择排序等。下面我们以快速排序为例,来看看 Java 中的代码实现:

public class QuickSort {
  public static void main(String[] args) {
    int[] arr = 5;
    quickSort(arr, 0, arr.length - 1);
    for (int i : arr) {
      System.out.print(i + " ");
    }
  }
  public static void quickSort(int[] arr, int left, int right) {
    if (left < right) {
      int partitionIndex = partition(arr, left, right);
      quickSort(arr, left, partitionIndex - 1);
      quickSort(arr, partitionIndex + 1, right);
    }
  }
  public static int partition(int[] arr, int left, int right) {
    int pivot = left;
    int index = pivot + 1;
    for (int i = index; i <= right; i++) {
      if (arr[i] < arr[pivot]) {
        swap(arr, i, index);
        index++;
      }
    }
    swap(arr, pivot, index - 1);
    return index - 1;
  }
  public static void swap(int[] arr, int i, int j) {
    int temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
  }
}

、快速排序、数组操作

2. 查找算法

查找算法是在数据集合中查找特定值的过程。Java 中常用的查找算法有线性查找、二分查找等。下面我们以二分查找为例,来看看 Java 中的代码实现:

public class BinarySearch {
  public static void main(String[] args) {
    int[] arr = 3;
    int target = 7;
    int result = binarySearch(arr, target);
    if (result == -1) {
      System.out.println("元素不存在");
    } else {
      System.out.println("元素存在于索引 " + result);
    }
  }
  public static int binarySearch(int[] arr, int target) {
    int left = 0;
    int right = arr.length - 1;
    while (left <= right) {
      int mid = (left + right) / 2;
      if (arr[mid] == target)
        return mid;
       else if (arr[mid] > target)
        right = mid - 1;
       else {
        left = mid + 1;
      }
    }
    return -1;
  }
}

关键词:Java 查找算法、二分查找、循环结构

3. 字符串匹配算法

在字符串处理中,字符串匹配算法是一个非常重要的问题。Java 中也有多种字符串匹配算法,如朴素模式匹配算法、KMP 算法等。下面我们以朴素模式匹配算法为例,来看看 Java 中的代码实现:

public class NaivePatternMatching {
  public static void main(String[] args) {
    String text = "JAVA is a widely used programming language";
    String pattern = "programming";
    naivePatternMatching(text, pattern);
  }
  public static void naivePatternMatching(String text, String pattern) {
    int n = text.length();
    int m = pattern.length();
    for (int i = 0; i <= n - m; i++) {
      int j;
      for (j = 0; j < m; j++) {
        if (text.charAt(i + j) != pattern.charAt(j))
          break;
        
      }
      if (j == m) {
        System.out.println("Pattern found at index " + i);
      }
    }
  }
}

关键词:Java 字符串匹配、朴素模式匹配、String 类型

  
  

评论区