21xrx.com
2024-09-17 04:48:26 Tuesday
登录
文章检索 我的文章 写文章
Java常用排序算法图解
2023-06-11 06:26:18 深夜i     --     --
Java 排序算法 代码例子

作为一名Java程序员,我很清楚在编程中使用排序算法对于提高程序的效率是非常必要的。在Java中,排序算法种类繁多,常用的包括冒泡排序、插入排序、选择排序、归并排序和快速排序等。在这里,我将结合代码示例,为大家图解这些排序算法。

1. 冒泡排序

冒泡排序是最基本的排序算法之一,它是通过依次比较相邻的两个元素,将较大的元素往后移,直到全部元素都排好序为止。下面是Java代码示例:


public static void bubbleSort(int[] arr) {

  int temp;

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

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

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

        temp = arr[j];

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

        arr[j + 1] = temp;

      }

    }

  }

}

2. 插入排序

插入排序在理解和实现上都比较简单,它是通过将未排序的元素逐个插入已排序序列中,直到全部元素都排好序为止。下面是Java代码示例:


public static void insertSort(int[] arr) {

  int j, temp;

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

    temp = arr[i];

    for (j = i; j > 0 && arr[j - 1] > temp; j--) {

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

    }

    arr[j] = temp;

  }

}

3. 快速排序

快速排序是一种高效的排序算法,它是通过选取一个基准值,将整个序列分为两个子序列,一边比基准值大,一边比基准值小,然后递归地对子序列进行排序。下面是Java代码示例:


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

  if (left < right) {

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

    quickSort(arr, left, partitionIndex - 1);

    quickSort(arr, partitionIndex + 1, right);

  }

}

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

  int pivot = left;

  int index = pivot + 1;

  for (int i = index; i <= right; i++) {

    if (arr[i] < arr[pivot]) {

      swap(arr, i, index);

      index++;

    }

  }

  swap(arr, pivot, index - 1);

  return index - 1;

}

private static void swap(int[] arr, int i, int j) {

  int temp = arr[i];

  arr[i] = arr[j];

  arr[j] = temp;

}

通过上面三个排序算法的代码示例,我们可以更好地理解和掌握Java中常用的排序算法。同时在实际开发中根据不同的需求,选择恰当的排序算法也能够更好地提高程序的效率。

  
  

评论区

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