21xrx.com
2024-05-20 12:30:52 Monday
登录
文章检索 我的文章 写文章
Java快速排序算法的代码实现
2023-11-22 02:20:00 深夜i     --     --
Java 快速排序算法 代码实现

快速排序是一种常用的排序算法,其核心思想是通过将数组分成两部分来递归地进行排序。它将一个元素作为基准,将比该基准小的元素放在基准的左边,将比该基准大的元素放在基准的右边,然后对左右两部分递归地进行快速排序,直到整个数组有序。

下面是用Java实现快速排序算法的代码示例:


public class QuickSort {

  

  public void quickSort(int[] arr) {

    if (arr == null || arr.length == 0)

      return;

    

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

  }

  

  private void sort(int[] arr, int low, int high) {

    int i = low;

    int j = high;

    // 基准值

    int pivot = arr[low + (high - low) / 2];

    

    // 将小于基准值的元素放在基准值的左边,大于基准值的元素放在基准值的右边

    while (i <= j) {

      while (arr[i] < pivot) {

        i++;

      }

      while (arr[j] > pivot)

        j--;

      

      if (i <= j) {

        swap(arr, i, j);

        i++;

        j--;

      }

    }

    

    // 对基准值左边的部分进行递归排序

    if (low < j) {

      sort(arr, low, j);

    }

    // 对基准值右边的部分进行递归排序

    if (i < high) {

      sort(arr, i, high);

    }

  }

  

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

    int temp = arr[i];

    arr[i] = arr[j];

    arr[j] = temp;

  }

}

接下来,我们可以使用这个快速排序算法对一个数组进行排序。例如,假设我们有一个数组`[9, 5, 3, 7, 2, 8, 1]`,我们可以通过创建`QuickSort`对象并调用其`quickSort`方法来对该数组进行排序:


public class Main {

  

  public static void main(String[] args) {

    int[] arr = 3;

    QuickSort quickSort = new QuickSort();

    quickSort.quickSort(arr);

    

    System.out.println("排序后的数组:");

    for (int i : arr) {

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

    }

    System.out.println();

  }

}

运行上述代码,我们将得到输出结果为:`排序后的数组:1 2 3 5 7 8 9`。

通过以上代码,我们可以看到快速排序算法在Java中的实现。它是一种高效的排序算法,能够在平均情况下达到O(nlogn)的时间复杂度。因此,当需要对数组进行排序时,快速排序是一个可靠且高效的选择。

  
  

评论区

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