21xrx.com
2024-11-22 09:29:06 Friday
登录
文章检索 我的文章 写文章
我最近在学习Java的排序算法
2023-06-15 14:28:44 深夜i     --     --
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中的排序算法

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复