21xrx.com
2024-09-20 01:03:16 Friday
登录
文章检索 我的文章 写文章
Java快速排序的实现方法及代码
2023-06-16 09:50:34 深夜i     --     --
Java 快速排序 算法实现

快速排序是一种常用的排序算法,原理是采用分治法(Divide and conquer)的思想,将一个大的问题划分成小的问题,然后递归地解决子问题,最终合并结果。在实际应用中,快速排序被广泛应用于大数据量的排序场景。

Java语言提供了丰富的API,其中也包含了快速排序的实现方法。下面是Java实现快速排序的代码:


public class QuickSort {

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

    if (left < right) {

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

      sort(arr, left, pivotIdx - 1);

      sort(arr, pivotIdx + 1, right);

    }

  }

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

    int pivot = arr[right];

    int i = left - 1;

    for (int j = left; j < right; j++) {

      if (arr[j] <= pivot) {

        i++;

        int temp = arr[i];

        arr[i] = arr[j];

        arr[j] = temp;

      }

    }

    int temp = arr[i + 1];

    arr[i + 1] = arr[right];

    arr[right] = temp;

    return i + 1;

  }

  public static void main(String[] args) {

    int[] arr = 10;

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

    for (int i : arr) {

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

    }

  }

}

在代码中,sort方法是快速排序的主逻辑。首先判断left和right是否相等,如果相等则说明数组长度为1,则无需排序;否则将数组分成两个部分并递归解决,分别是left到pivorIdx-1和pivorIdx+1到right。

partition方法是划分算法,基本思路是取数组最右侧的数字作为分界线,然后将整个数组进行划分,左侧小于分界点,右侧大于等于分界点,最后返回分界点的位置。

通过以上代码实现,我们可以轻松地实现一个快速排序算法。

  
  

评论区

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