zoukankan      html  css  js  c++  java
  • 十六 、快速排序

    public class QuickSort {


    //划分数组
    public static int partition(int[] array ,int left,int right,int point)
    {
    int leftptr = left -1;
    int rightptr = right;

    while(true)
    {
    //左边右移
    while(leftptr<rightptr && array[++leftptr] < point);
    //右边左移
    while(leftptr < rightptr && array[--rightptr]>point);
    if(leftptr >= rightptr)
    break;
    else
    {
    int tmp = array[leftptr];
    array[leftptr] = array[rightptr];
    array[rightptr] = tmp;
    }

    }
    //将关键字与当前指向交换
    int tmp = array[leftptr];
    array[leftptr] = array[right];
    array[right] = tmp;
    return leftptr;
    }


    //快速排序
    public static void sort(int[] array ,int left,int right)
    {
    if(left >= right)
    return;
    //设置关键字
    int point = array[right];
    //获得切入点,对数组进行划分
    int partion = partition(array, left, right, point);
    //对左边子数组进行快排
    sort(array, left,partion -1);
    //右边数组快排
    sort(array, partion+1, right);

    }

    public static void display(int[] array)
    {
    System.out.print("[");
    for(int num:array) //for的高级用法
    {
    System.out.print(num+" ");
    }
    System.out.print("]");
    System.out.println();
    }

    }

  • 相关阅读:
    ECharts 地图绘制与钻取简易接口
    css对齐方案总结
    原型链
    原生jQuery代码
    Jinja2用法总结
    url
    算法问题
    ORM
    tensorflow加载embedding模型进行可视化
    实现加减乘除任意组合的语法解析
  • 原文地址:https://www.cnblogs.com/fyz666/p/8492366.html
Copyright © 2011-2022 走看看