21xrx.com
2024-05-20 16:44:05 Monday
登录
文章检索 我的文章 写文章
Java常用的三种排序算法
2023-06-11 00:22:26 深夜i     --     --
Java编程语言 排序算法 代码例子

我最近在学习Java编程语言,其中一个重要的概念就是排序算法。在Java中,有许多可用的排序算法,它们各自有不同的优缺点,下面我将为大家介绍几种最常用的排序算法。

第一种是冒泡排序法。这是最简单、最直观的排序算法之一,但在效率上并不是最优秀的。该算法的基本思想是依次比较相邻两个元素的大小,如果前一个元素比后一个元素大,则交换它们的位置,直到整个序列有序为止。下面是冒泡排序的Java代码:


public 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 temp = arr[j];

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

        arr[j + 1] = temp;

      }

    }

  }

}

第二种排序算法是插入排序法。插入排序法的基本思想是将待排序数组分为两个部分,一个有序,一个无序,每次从无序部分选择一个元素插入到有序部分的适当位置。下面是插入排序的Java代码:


public void insertionSort(int[] arr) {

  int len = arr.length;

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

    int j = i;

    int curr = arr[i];

    while (j > 0 && arr[j - 1] > curr) {

      arr[j] = arr[j - 1];

      j--;

    }

    arr[j] = curr;

  }

}

第三种排序算法是快速排序法。快速排序法是一种比较高效的排序算法,它采用分治策略,将数组分为若干个子数组,每个子数组都采用递归的方式进行排序。下面是快速排序的Java代码:


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

  if (low < high) {

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

    quickSort(arr, low, pivot - 1);

    quickSort(arr, pivot + 1, high);

  }

}

private int partition(int[] arr, int low, int high) {

  int pivot = arr[high];

  int i = low - 1;

  for (int j = low; j < high; 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']}}
()
回复
回复