21xrx.com
2025-06-21 02:40:55 Saturday
登录
文章检索 我的文章 写文章
我最近在学习Java基础排序算法
2023-06-10 19:24:58 深夜i     30     0
Java 排序算法 代码实现

我最近在学习Java基础排序算法。在这个过程中,我了解了常见的几种排序算法:冒泡排序、选择排序、插入排序、快速排序和归并排序。

首先让我们看看冒泡排序。这个算法的思路很简单:比较相邻的元素,如果第一个比第二个大,就交换他们两个。这样的操作会持续到没有任何一对数需要交换为止。以下是这个算法的代码实现:

public void bubbleSort(int[] arr) {
  int n = arr.length;
  for (int i = 0; i < n - 1; i++) {
    for (int j = 0; j < n - i - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        int temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }
}

接下来我们来看看选择排序。这个算法的思路是找到数组中最小的元素,将它和数组的第一个元素交换位置。接着再在剩下的元素中找到最小的元素,将它和数组的第二个元素交换位置。不断重复这样的操作,直到排序完成。以下是这个算法的代码实现:

public void selectionSort(int[] arr) {
  int n = arr.length;
  for (int i = 0; i < n - 1; i++) {
    int minIndex = i;
    for (int j = i + 1; j < n; j++) {
      if (arr[j] < arr[minIndex])
        minIndex = j;
      
    }
    int temp = arr[minIndex];
    arr[minIndex] = arr[i];
    arr[i] = temp;
  }
}

最后我们来看看插入排序。这个算法的思路是将数组分为已排序和未排序两部分。一开始,已排序部分只有第一个元素。接着,将未排序部分中的第一个元素插入到已排序部分的适当位置。重复这个过程,直到未排序部分为空为止。以下是这个算法的代码实现:

public void insertionSort(int[] arr) {
  int n = arr.length;
  for (int i = 1; i < n; i++) {
    int key = arr[i];
    int j = i - 1;
    while (j >= 0 && arr[j] > key) {
      arr[j + 1] = arr[j];
      j--;
    }
    arr[j + 1] = key;
  }
}

通过学习以上这些排序算法,我对Java的基础知识有了更深入的了解。如果你也正好处于学习Java的阶段,不妨试着实现这些代码,并切身体会算法的巧妙之处吧。

标题:学习Java基础排序算法的笔记

  
  

评论区