21xrx.com
2024-11-21 23:21:04 Thursday
登录
文章检索 我的文章 写文章
简单易懂的快排算法Java代码,助您解决排序难题
2023-08-13 09:42:50 深夜i     --     --
快速排序算法 Java代码 简单易懂 排序难题

快速排序算法是一种常用的排序算法,它的思想简单并且高效。在Java中,我们可以通过使用递归函数来实现快排算法。

下面是一个简单易懂的快速排序的Java代码示例:


public class QuickSort {

  public static void main(String[] args) {

    int[] arr = 3;

    quickSort(arr, 0, arr.length - 1);

    System.out.println("排序结果:");

    for (int num : arr) {

      System.out.print(num + " ");

    }

  }

  private static 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 static 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++;

        swap(arr, i, j);

      }

    }

    swap(arr, i + 1, high);

    return i + 1;

  }

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

    int temp = arr[i];

    arr[i] = arr[j];

    arr[j] = temp;

  }

}

在上面的代码中,我们首先定义了一个`QuickSort`类和一个`main`方法来测试排序结果。我们创建一个包含一些无序整数的数组`arr`,然后调用`quickSort`方法对其进行快速排序。最后,我们使用一个简单的循环来打印排序后的结果。

在`quickSort`方法中,我们首先判断`low`和`high`的值是否满足条件,如果满足,则进行分区操作,将数组分为两部分。然后,我们递归调用`quickSort`方法对两个分区进行排序。

在`partition`方法中,我们选择数组最后一个元素作为基准值`pivot`,并使用`i`指针来指向较小元素的位置。然后,我们遍历数组,并将小于`pivot`的元素与`i`指针所指的元素进行交换。最后,我们将`pivot`放置到正确的位置,并返回该位置的索引。

在`swap`方法中,我们简单地交换数组中的两个元素。

通过阅读和理解上述代码,我们可以很容易地实现一个简单易懂的快速排序算法。无论是对小型还是大型数组进行排序,快速排序都能提供较高的效率和性能。希望这个简单的示例能够帮助您解决排序难题。

  
  

评论区

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