21xrx.com
2025-03-22 03:54:22 Saturday
文章检索 我的文章 写文章
我最近在学习Java的排序算法
2023-06-15 14:28:44 深夜i     4     0
Java 排序算法 冒泡排序 插入排序 快速排序

我最近在学习Java的排序算法,主要包括冒泡排序、插入排序和快速排序。这些算法都非常重要,因为在实际开发中,排序算法是必不可少的。

首先,让我来介绍冒泡排序。这是最基本的排序算法之一,它的原理非常简单。我们通过比较相邻的元素来进行排序,如果一个元素比它后面的元素大,就交换这两个元素。具体的代码实现如下:

public static void bubbleSort(int[] array) {
  int temp;
  for (int i = 0; i < array.length; 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;
      }
    }
  }
}

接下来是插入排序。插入排序的思路是:将一个元素插入到已经排好序的元素序列中。具体的代码实现如下:

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

最后是快速排序。快速排序的思路是:选取一个基准数,将序列分为比基准数大和比基准数小的两个部分,然后分别对这两个部分进行递归排序。具体的代码实现如下:

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

总的来说,学习Java的排序算法是必要的,对于实际开发也有很大的帮助。以上是我对于冒泡排序、插入排序和快速排序的简单介绍,希望能给大家带来一些帮助。

标题:学习Java中的排序算法

  
  

评论区