21xrx.com
2024-05-09 14:55:19 Thursday
登录
文章检索 我的文章 写文章
Java实现快速排序算法
2023-07-28 05:28:18 深夜i     --     --
快速排序 Java 算法 实现

快速排序是一种高效的排序算法,在Java中可以很容易地实现。

快速排序算法的基本原理是通过将一个数组分成两部分,一部分小于某个特定值,一部分大于特定值。然后递归地对这两部分进行排序,直到整个数组有序。

在Java中,可以使用递归函数来实现快速排序算法。下面是一个使用Java实现快速排序算法的示例代码:


public class QuickSort {

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

    if (low < high) {

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

      quickSort(arr, low, pivotIndex - 1);

      quickSort(arr, pivotIndex + 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; j++) {

      if (arr[j] < pivot) {

        i++;

        swap(arr, i, j);

      }

    }

    

    swap(arr, i+1, high);

    

    return i + 1;

  }

  

  public static void swap(int[] arr, int index1, int index2) {

    int temp = arr[index1];

    arr[index1] = arr[index2];

    arr[index2] = temp;

  }

  

  public static void main(String[] args) {

    int[] arr = 2;

    System.out.println("Original array: ");

    for (int num : arr) {

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

    }

    

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

    

    System.out.println("\nSorted array: ");

    for (int num : arr) {

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

    }

  }

}

上述代码中,我们首先定义了一个快速排序函数 `quickSort`。该函数使用递归的方式进行排序。传入的参数包括待排序的数组,以及待排序部分的起始索引和结束索引。

在 `quickSort` 函数中,我们首先检查起始索引是否小于结束索引。如果是,则将数组分成两部分,然后递归地对这两部分进行排序。

我们使用 `partition` 函数来找到数组中某个特定值的正确位置。该函数通过比较数组中的元素和特定值来确定正确的位置,并将小于特定值的元素移动到特定值的左边,大于特定值的元素移动到特定值的右边。

最后,在 `main` 函数中,我们定义了一个待排序的数组,并将其输出为原始顺序。然后,我们调用 `quickSort` 函数对数组进行排序,并再次输出为排序后的顺序。

在运行代码后,我们可以看到输出结果为原始数组和排序后的数组。快速排序算法通过递归地将数组分成两部分,并对这两部分进行排序,最终实现了对整个数组的排序。

总而言之,快速排序是一种高效的排序算法,可以在Java中轻松实现。通过递归的方式将数组分成两部分,并对这两部分进行排序,最终实现了对整个数组的排序。

  
  

评论区

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