21xrx.com
2025-03-21 05:59:22 Friday
文章检索 我的文章 写文章
Java常用排序算法图表及代码案例
2023-06-19 10:16:32 深夜i     12     0
Java 排序算法 代码案例

在Java编程中,常常需要用到各种排序算法。在不同的场景中,选择不同的排序算法可以提高程序的效率。本文将介绍Java中常用的排序算法及其图表,同时提供代码案例,供读者参考。

1. 冒泡排序

冒泡排序是最基础、最简单的排序算法之一。它的基本思想是从头到尾依次比较相邻的两个元素的大小,并按照规定的排序顺序进行交换,直到全部排序完成。这个过程就像水中的气泡从底部慢慢浮起,因此被称为冒泡排序。

代码案例:

public static void bubbleSort(int[] arr) {
  int temp;
  for (int i = 0; i < arr.length - 1; i++) {
    for (int j = 0; j < arr.length - i - 1; j++) {
      if (arr[j] > arr[j + 1]) { // 相邻元素两两对比
        temp = arr[j + 1]; // 元素交换
        arr[j + 1] = arr[j];
        arr[j] = temp;
      }
    }
  }
}

2. 插入排序

插入排序是一种简单直观的排序算法,它的基本思想是将一个记录插入到已排好序的有序表中,从而得到一个新的有序表。插入排序可以分为直接插入排序和折半插入排序。直接插入排序是从前往后依次将未排序的元素插入到已排序的序列中,而折半插入排序则是利用二分查找的思想将插入位置加速。

代码案例:

public static void insertSort(int[] arr) {
  int j, temp;
  for (int i = 1; i < arr.length; i++) {
    temp = arr[i];
    j = i - 1;
    while (j >= 0 && arr[j] > temp) { // 从后往前找到插入位置
      arr[j + 1] = arr[j]; // 如果当前元素大于要插入的元素,就将当前元素移到下一位置
      j--;
    }
    arr[j + 1] = temp; // 要插入的元素插入到合适的位置
  }
}

3. 快速排序

快速排序是一种常用的排序算法,它的基本思想是通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,在继续对两部分记录分别进行快速排序,最终得到有序序列。快速排序具有排序速度快、适用范围广的优点。

代码案例:

public static void quickSort(int[] arr, int left, int right) {
  if (left >= right) // 递归终止条件
    return;
  
  int i = left, j = right, temp = arr[left];
  while (i < j) { // 循环比较过程
    while (i < j && arr[j] >= temp) // 从右向左找第一个小于temp的数
      j--;
    
    if (i < j) {
      arr[i++] = arr[j];
    }
    while (i < j && arr[i] <= temp) { // 从左向右找第一个大于temp的数
      i++;
    }
    if (i < j) {
      arr[j--] = arr[i];
    }
  }
  arr[i] = temp; // 将基准数放在中间位置
  quickSort(arr, left, i - 1); // 递归调用左半数组
  quickSort(arr, i + 1, right); // 递归调用右半数组
}

以上就是本文介绍的三种常用排序算法以及它们的Java代码实现。通过这些代码案例,读者可以了解不同的排序算法在Java编程中的应用及其实现方法。

  
  

评论区