21xrx.com
2024-12-23 02:02:27 Monday
登录
文章检索 我的文章 写文章
Java中排序:常见的排序算法及应用
2023-06-17 15:04:49 深夜i     --     --
Java排序算法 排序实现 算法应用

在Java中,排序是一项频繁使用的操作,一些结构化的数据需要按照一定的规则进行排序。本文将介绍Java中常见的排序算法及其应用场景,并附上相应的代码案例。

1. 冒泡排序

冒泡排序是一种简单直观的排序算法,它重复地遍历过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。

代码案例:

public static void bubbleSort(int[] array) {

  int n = array.length;

  for (int i = 0; i < n - 1; i++) {

    for (int j = 0; j < n - i - 1; j++) {

      if (array[j] > array[j + 1]) {

        int temp = array[j];

        array[j] = array[j + 1];

        array[j + 1] = temp;

      }

    }

  }

}

应用场景:数据规模较小的情况,或者数据基本有序的情况。

2. 快速排序

快速排序也是一种常见的排序算法,它的基本思想是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序。

代码案例:

public static void quickSort(int[] array, int left, int right) {

  if (left < right) {

    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);

  }

}

应用场景:数据规模较大的情况,或者数据无序的情况。

3. 插入排序

插入排序是一种简单直观的排序算法,它的思想是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

代码案例:

public static void insertionSort(int[] array) {

  int n = array.length;

  for (int i = 1; i < n; i++) {

    int key = array[i], j = i - 1;

    while (j >= 0 && array[j] > key) {

      array[j + 1] = array[j];

      j--;

    }

    array[j + 1] = key;

  }

}

应用场景:数据规模较小且基本有序的情况。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章