21xrx.com
2024-12-27 20:42:59 Friday
登录
文章检索 我的文章 写文章
Java排序:常见的几种实现方式
2023-06-18 09:09:15 深夜i     --     --
Java排序 冒泡排序 插入排序 选择排序

如果你是一名Java开发者,排序通常是不可避免的问题。当你需要对一组数据进行排序时,你会遇到选择不同排序算法的问题。那么,本文将介绍一些Java中常见的排序算法。

1. 冒泡排序

冒泡排序是最简单的排序算法之一,其思想是比较相邻两个元素,如果顺序不对则交换它们的位置。这个过程一次遍历可以保证列表中的最大或最小值被移动到最后或最前。

示例代码:


public static void bubbleSort(int[] arr) {

  for(int i = 0; i < arr.length; i++) {

    for(int j = 0; j < arr.length - i - 1; j++) {

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

        int temp = arr[j];

        arr[j] = arr[j+1];

        arr[j+1] = temp;

      }

    }

  }

}

2. 插入排序

插入排序的思想是将待排序的元素从后往前依次比较,如果当前元素比前一个元素小,就交换它们的位置,直到当前元素比前一个元素大为止。这样,将一个元素插入到已排好序的列表中,得到一个新的已排序列表。

示例代码:


public static void insertionSort(int[] arr) {

  int n = arr.length;

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

    int key = arr[i];

    int j = i - 1;

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

      arr[j+1] = arr[j];

      j--;

    }

    arr[j+1] = key;

  }

}

3. 选择排序

选择排序的思想是每次选择一个最小的元素,放到已排好序部分的末尾。为了方便操作,选择排序通常以升序排列方式实现。

示例代码:


public static void selectionSort(int[] arr) {

  int n = arr.length;

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

    int minIndex = i;

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

      if(arr[j] < arr[minIndex])

        minIndex = j;

      

    }

    int temp = arr[i];

    arr[i] = arr[minIndex];

    arr[minIndex] = temp;

  }

}

总结

以上是Java中比较常见的排序算法,每个算法都有其适用的场景,开发者可以根据实际情况选择相应的排序算法。如果您有更好的Java排序算法,请在评论区中分享。

  
  

评论区

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