21xrx.com
2024-09-17 04:18:41 Tuesday
登录
文章检索 我的文章 写文章
我最喜欢的Java十种排序算法
2023-06-11 04:09:09 深夜i     --     --
Java 排序算法 冒泡排序

排序算法是我们在编程中经常用到的算法,它可以将一组乱序的数据按照一定规律排列,方便我们查找、插入和删除。Java作为一门广泛使用的编程语言,内置了很多经典的排序算法。下面我给大家介绍我最喜欢的Java十种排序算法。

1. 冒泡排序(Bubble Sort)

冒泡排序是一种简单直观的排序方法。通过多次遍历数组,每次比较相邻两个元素的大小,将大的元素往后移,最终达到排序的目的。

代码示例:


public static void bubbleSort(int[] arr) {

  int n = arr.length;

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

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

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

        int temp = arr[j];

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

        arr[j + 1] = temp;

      }

    }

  }

}

2. 插入排序(Insertion Sort)

插入排序是一种稳定的排序算法,通过比较和移动数组元素来进行排序。它的时间复杂度为O(n²),但对于少量数据或已经接近有序的数据,它的效率非常高。

代码示例:


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 = j - 1;

    }

    arr[j + 1] = key;

  }

}

关键字:Java、排序算法、插入排序

3. 快速排序(Quick Sort)

快速排序是一种基于分治的排序算法,其基本思想是选择一个关键元素作为枢轴,通过一趟排序将数组分成两部分,一部分小于枢轴,一部分大于枢轴。然后递归的对枢轴左右两边的子数组进行排序,直到整个序列有序。

代码示例:


public static void quickSort(int[] arr, int low, int high) {

  if (low < high) {

    int pi = partition(arr, low, high);

    quickSort(arr, low, pi - 1);

    quickSort(arr, pi + 1, high);

  }

}

public static int partition(int[] arr, int low, int high) {

  int pivot = arr[high];

  int i = (low - 1);

  for (int j = low; j <= high - 1; j++) {

    if (arr[j] < pivot) {

      i++;

      int temp = arr[i];

      arr[i] = arr[j];

      arr[j] = temp;

    }

  }

  int temp = arr[i + 1];

  arr[i + 1] = arr[high];

  arr[high] = temp;

  return (i + 1);

}

关键字:Java、排序算法、快速排序

我的Java之旅中,排序算法是我必不可少的伙伴,通过不断学习和实践,我逐渐掌握了这十种排序算法,但在实际的开发中,根据不同的场景和需求,灵活选用适合的排序算法才是最重要的。如果你对排序算法感兴趣,也可以尝试自己实现这些算法,相信你一定会从中获得乐趣和收获。

  
  

评论区

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