快速排序
发布日期:2021-05-08 20:26:18 浏览次数:13 分类:精选文章

本文共 1423 字,大约阅读时间需要 4 分钟。

快速排序–java

package algorithm;import java.util.Arrays;public class QuickSort {    public static void main(String[] args) {        //定义数组        int[] arr = {6, 3, 7, 9, 5, 1, 4, 8};        //调用方法,进行快速排序        quickSort(arr, 0, arr.length - 1);//        System.out.println(Arrays.toString(arr));        for (int i = 0; i < arr.length; i++){            System.out.println(arr[i] + " ");        }    }    public static void quickSort(int[] arr, int left, int right){        if(left > right){            return;        }        //定义变量保存的基准数        int base = arr[left];        //定义变量i,指向最左边        int i = left;        //定义变量j,指向最右边        int j = right;        //当i和j不相遇的时候,在循环中进行检索        while (i != j){            //先由j从右往左检索比基准数小的,如果检索到比基准数小的就停下            while (arr[j] >= base && i < j){                j--;            }            //先由i从左往右检索比基准数大的,如果检索到比基准数大的就停下            while (arr[i] <= base && i < j){                i++;            }            //代码走到这里,i停下了,j也停下了。然后交换i和j位置的元素            int temp = arr[i];            arr[i] = arr[j];            arr[j] = arr[i];        }        //如果上面while循环的条件不成立,会跳出这个循环,往下执行        //如果这个条件不成立说明        //如果i和j相遇,就交换基准数这个元素和相遇位置的元素。        //把相遇位置的元素赋值给基准数这个位置的元素        arr[left] = arr[i];        //再把基准数赋值给相遇位置的元素        arr[i] = base;        //基准数在这里就归位了,左边的数字都比他小,右边都比他大        //排基准数的左边        quickSort(arr,left,i-1);        //排右边        quickSort(arr,j+1,right);    }}
上一篇:装饰者模式
下一篇:端点面试总结的面试题

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月03日 15时58分30秒