21xrx.com
2024-11-25 01:11:37 Monday
登录
文章检索 我的文章 写文章
Java中常用的排序算法及实现
2023-06-16 08:49:10 深夜i     --     --
Java排序 冒泡排序 选择排序 快速排序

Java中,对数组进行排序是基本的操作之一。常用的排序算法包括冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序等。下面将详细介绍几种常见的排序算法及其Java实现。

1. 冒泡排序

冒泡排序是一种简单的排序算法,它的基本思想是对相邻的元素进行两两比较,将较大的数往后移,最终将最大的数移到最后。Java代码实现如下:


public static void bubbleSort(int[] arr) {

  int len = arr.length;

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

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

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

        int tmp = arr[j];

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

        arr[j + 1] = tmp;

      }

    }

  }

}

2. 选择排序

选择排序也是一种简单的排序算法,它的基本思想是每次从未排序的序列中选择一个最小的元素,放到已排序的元素的末尾。Java代码实现如下:


public static void selectionSort(int[] arr) {

  int len = arr.length;

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

    int minIndex = i;

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

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

        minIndex = j;

      

    }

    int tmp = arr[i];

    arr[i] = arr[minIndex];

    arr[minIndex] = tmp;

  }

}

3. 快速排序

快速排序是一种高效的排序算法,它的基本思想是选择一个基准数,通过一趟排序将要排序的数据分成两部分,一部分比基准数小,一部分比基准数大,然后再对这两部分进行排序,递归执行上述操作,最终完成整个排序过程。Java代码实现如下:


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

  if (left >= right)

    return;

  

  int pivot = partition(arr, left, right);

  quickSort(arr, left, pivot - 1);

  quickSort(arr, pivot + 1, right);

}

private static int partition(int[] arr, int left, int right) {

  int pivot = arr[right];

  int i = left - 1;

  for (int j = left; j < right; j++) {

    if (arr[j] < pivot) {

      i++;

      int tmp = arr[i];

      arr[i] = arr[j];

      arr[j] = tmp;

    }

  }

  int tmp = arr[i + 1];

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

  arr[right] = tmp;

  return i + 1;

}

  
  

评论区

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