117.info
人生若只如初见

如何用java写一个快速排序算法

下面是一个用Java写的快速排序算法示例:

public class QuickSort {

    public void sort(int[] arr, int low, int high) {
        if (arr == null || arr.length == 0) {
            return;
        }

        if (low >= high) {
            return;
        }

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

        int i = low, j = high;
        while (i <= j) {
            while (arr[i] < pivot) {
                i++;
            }

            while (arr[j] > pivot) {
                j--;
            }

            if (i <= j) {
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
                i++;
                j--;
            }
        }

        if (low < j) {
            sort(arr, low, j);
        }

        if (high > i) {
            sort(arr, i, high);
        }
    }

    public static void main(String[] args) {
        QuickSort quickSort = new QuickSort();
        int[] arr = {5, 2, 7, 3, 6, 1, 4};

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

        System.out.println("Sorted array:");
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }
}

在这个示例中,sort方法使用递归的方式实现了快速排序算法。首先选择数组中间的元素作为pivot,然后将数组分成两部分,一部分比pivot小,一部分比pivot大,然后对这两部分分别进行递归排序。最后在main方法中展示了如何使用这个快速排序算法。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe0c8AzsIBAJfDFI.html

推荐文章

  • java数组添加值的方法是什么

    在Java中,要向数组添加值,需要创建一个新的数组,将原始数组的值复制到新数组中,再添加新值。以下是一个示例代码:
    // 原始数组
    int[] originalArr...

  • 怎么在Java中定义一个二维数组

    在Java中定义一个二维数组可以通过如下方式:
    // 定义一个二维整型数组
    int[][] arr = new int[3][4]; // 给二维数组赋值
    arr[0][0] = 1;
    a...

  • java动态数组创建的方法是什么

    在Java中,动态数组通常使用ArrayList类来实现。要创建一个动态数组,可以使用以下语法:
    ArrayList listName = new ArrayList(); 其中,Type是数组中存储的...

  • java数组越界报错如何处理

    处理 Java 数组越界报错通常可以通过以下方法来避免或处理: 在访问数组元素之前,先检查数组的长度和索引是否合法,确保索引不越界。 使用 try-catch 块捕获数组...

  • php如何将数组从小到大排序

    可以使用PHP中的sort()函数来对数组进行从小到大的排序。例如:```php$numbers = array(4, 2, 8, 6);sort($numbers);print_r($numbers);```上面的代码会输出:``...

  • JAVA数组的访问是怎么进行的

    在Java中,数组是一种数据结构,可以存储多个相同类型的元素。要访问数组中的元素,可以通过数组的下标来访问。数组的下标从0开始,依次递增,直到数组的长度减1...

  • java数组自动排序的方法是什么

    在Java中,可以使用Arrays类的sort()方法来对数组进行自动排序。示例如下:
    import java.util.Arrays; public class Main { public static void main(Strin...

  • python如何用for循环遍历列表

    使用for循环遍历列表很简单,只需按照以下格式编写代码即可:
    # 定义一个列表
    my_list = [1, 2, 3, 4, 5] # 使用for循环遍历列表
    for item in my...