zoukankan      html  css  js  c++  java
  • PHP 计数排序算法

    计数排序只适用于整数在小范围内排序

    $arr = [95,94,91,98,99,90,99,93,91,92];
    function countSort($arr){
    $max = $arr[0];
    $min = $arr[0];
    for($i=0;$i<count($arr);$i++){
    if($arr[$i]>$max){
    $max = $arr[$i];
    }
    if($arr[$i] < $min){
    $min = $arr[$i];
    }
    }
    try{
    $frequency = new SplFixedArray($max-$min+1);
    for($i=0;$i<count($arr);$i++){
    if(empty($frequency[$arr[$i]-$min]))
    $frequency[$arr[$i]-$min] = 0;
    $frequency[$arr[$i]-$min] += 1;
    }

    $sum = 0;
    for ($i=0; $i < count($frequency); $i++) {
    $sum += $frequency[$i];
    $frequency[$i] = $sum;
    }

    $splfixed = new SplFixedArray(count($arr));

    for($i=(count($arr)-1);$i>=0;$i--){
    $splfixed[$frequency[$arr[$i]-$min]-1] = $arr[$i];
    $frequency[$arr[$i]-$min] -= 1;
    }
    }catch(RuntimeException $re){
    echo "RuntimeException: ".$re->getMessage()." ";
    }
    print_r($splfixed->toArray());
    }
    countSort($arr);

  • 相关阅读:
    var_threshold
    一些动态绑定数据代码
    直线与圆的拟合测量
    圆的拟合__测量圆心距
    halcon骨架与xld的区分
    dyn_threshold
    模板匹配加测量Demo
    ToString 格式
    S7-200 运动控制
    环形图片识别
  • 原文地址:https://www.cnblogs.com/hubudong/p/9764598.html
Copyright © 2011-2022 走看看