• Java数据结构之快速排序


    代码来源于视频中
    public static void quickSort(int[] arr,int left,int right){
    //进行判断,如果左边索引比右边索引要大,是不合法的,直接使用return结束这个方法
    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--;//j从右往左移动
    }
    while(arr[i] <= base && i < j)
    {
    i++;//i从左往右移动
    }
    //代码执行到这里,代表i停下了,j也停下了.然后交换i和j位置的元素.
    int temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
    }
    //如果while循环的条件的不成立,会跳出循环,往下执行
    //如果条件不成立,代表i和j相遇了
    //如果i和j相遇了,就交换基准数这个元素和相遇位置的元素
    arr[left] = arr[i];
    arr[i] = base;

    //执行到这一步,表示,基准数左边的数都比它小,基准数右边的数都比它大
    //排基准数的左边
    quickSort(arr,left,i-1);
    //排基准数的右边
    quickSort(arr,i+1,right);

    }
  • 相关阅读:
    foreach
    if
    注意事项
    Maven测试
    课程评价
    个人总结
    HTML表格CSS美化
    让多个输入框对齐
    CSS样式写在JSP代码中的几种方法
    日常
  • 原文地址:https://www.cnblogs.com/baoyingying/p/11801354.html
Copyright © 2020-2023  润新知