• 快速排序 QuickSort


    学习链接:坐在马桶上看算法:快速排序

    Java代码:

     1 class QuickSort{
     2     int [] sortAns;
     3     
     4     QuickSort(){}
     5     
     6     QuickSort(int[] nums){
     7         QSort(nums,0,nums.length-1);
     8         sortAns=nums;
     9     }
    10     
    11     protected void QSort(int[] nums,int a,int b){
    12         if(a<b){
    13             int pos=patition(nums,a,b);
    14             QSort(nums,a,pos-1);
    15             QSort(nums,pos+1,b);
    16         }
    17     }
    18     int patition(int[] nums,int a,int b){
    19         int init=a;
    20         while(b>a){
    21             while(nums[b]>nums[init] && b>a){
    22                 b--;//右侧哨兵左移
    23             }
    24             while(nums[init]>=nums[a] && b>a){//nums[init]>=nums[a]
    25                 a++;//左侧哨兵右移                通过》=,在第一次循环时就使哨兵离开基准数
    26             }
    27             if(a<b) swap(nums,a,b);
    28         }
    29         swap(nums,init,a);//基准数归位
    30         return a;
    31     }
    32     
    33     void swap(int[] nums,int a,int b){
    34         int tmp=nums[a];
    35         nums[a]=nums[b];
    36         nums[b]=tmp;
    37     }
    38      public String toString(){
    39          int i;
    40          String str=new String("");
    41          for(i=0;i<sortAns.length;i++) str+=String.valueOf(sortAns[i])+" ";
    42          str+="
    ";
    43          return str;
    44      }
    45      
    46 }
  • 相关阅读:
    数据类型基础
    变量的三个特征
    常量
    变量
    django基础 -- 2. django初识
    django基础 -- 1. 前奏 web框架的本质
    前端 --- 7 Bootstrop框架
    前端 --- 6 jQuery 初始
    前端 --- 5 BOM 和 DOM
    前端 --- 4 js
  • 原文地址:https://www.cnblogs.com/TQCAI/p/7645659.html
Copyright © 2020-2023  润新知