21xrx.com
2025-06-27 11:20:29 Friday
登录
文章检索 我的文章 写文章
Java实现快速排序算法
2023-07-28 05:28:18 深夜i     22     0
快速排序 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中轻松实现。通过递归的方式将数组分成两部分,并对这两部分进行排序,最终实现了对整个数组的排序。

  
  

评论区