zoukankan      html  css  js  c++  java
  • 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);

    }
  • 相关阅读:
    10年后编程还有意义吗?
    专访Jeffrey Richter:Windows 8是微软的重中之重
    x86汇编指令脚本虚拟机
    基于容器的持续交付管道
    NET Core 整合Autofac和Castle
    数据结构与算法1
    Redis集群
    react + iscroll5
    MongoDB
    WebComponent
  • 原文地址:https://www.cnblogs.com/baoyingying/p/11801354.html
Copyright © 2011-2022 走看看