21xrx.com
2025-06-22 04:20:02 Sunday
登录
文章检索 我的文章 写文章
Java常用排序算法图解大全
2023-06-15 10:37:11 深夜i     18     0
Java排序算法 代码实现 图解

排序算法是程序中常见的一类算法,它可以将一组无序的数据按照一定的顺序排列。在Java程序中,经常会用到各种排序算法。本篇文章将会介绍Java常用的排序算法,并通过图解的方式来更好地理解这些算法。

1. 冒泡排序

冒泡排序是最基础的一种排序算法,它的原理是不断地比较相邻元素的大小,将大的元素往后移,直到整个数组有序为止。

下面是Java代码实现:

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

2. 选择排序

选择排序的原理是不断地选取最小的元素,并将其与数组的最前面的元素交换,直到整个数组有序为止。

下面是Java代码实现:

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

3. 插入排序

插入排序的原理就像打扑克牌时的理牌:从第二张开始,将每张牌插入到左边已经排好序了的牌中的正确位置。

下面是Java代码实现:

public static void insertionSort(int[] array) {
  int temp, j;
  for (int i = 0; i < array.length; i++) {
    temp = array[i];
    for (j = i; j > 0 && temp < array[j - 1]; j--) {
      array[j] = array[j - 1];
    }
    array[j] = temp;
  }
}

4. 快速排序

快速排序的原理是将整个数组分成左右两个部分,左半部分的元素都比基准值小,右半部分的元素都比基准值大,然后递归地对左右两个部分进行排序,直到整个数组有序为止。

下面是Java代码实现:

public static void quickSort(int[] array, int left, int right) {
  if (left >= right)
    return;
  
  int i = left, j = right, pivot = array[left];
  while (i < j) {
    while (i < j && array[j] >= pivot)
      j--;
    
    if (i < j) {
      array[i++] = array[j];
    }
    while (i < j && array[i] < pivot) {
      i++;
    }
    if (i < j) {
      array[j--] = array[i];
    }
  }
  array[i] = pivot;
  quickSort(array, left, i - 1);
  quickSort(array, i + 1, right);
}

  
  

评论区