zoukankan      html  css  js  c++  java
  • 算法学习--希尔和快速排序

    <?php
        //希尔派讯
        function scheer(array $array){
            $total=$grp=count($array);
            
            while ($grp>1){
                $grp=ceil($grp/2);
                do{
                    $p=0;
                    for($j=0;$j+$grp<=$total-1;$j++){
                        if ($array[$j]>$array[$j+$grp]){
                            $tmp=$array[$j];
                            $array[$j]=$array[$j+$grp];
                            $array[$j+$grp]=$tmp;
                            $p=1;
                        }
                    }
                }while ($p!=0);
            }
            var_dump($array);
        }
        
    
        //快速排序
        function quicksort($array,$frist,$last){
            
            if($frist<$last){
                $i=$frist;
                $j=$last+1;
                $num=$array[$frist];
                do{
                    do {
                        $i++;
                    }while (!($num<=$array[$i]||$i==$last));
                    do {
                        $j--;
                    }while (!($num>=$array[$j]||$j==$frist));
                    if($i<$j){
                        $tmp=$array[$i];
                        $array[$i]=$array[$j];
                        $array[$j]=$tmp;
                    }else{
                        $tmp=$array[$frist];
                        $array[$frist]=$array[$j];
                        $array[$j]=$tmp;
                        break;
                    }
                }while (1);
                quicksort($array, $frist, $j-1);  //前半部分
                quicksort($array, $j+1, $last);    //后半部分
            }else{
                var_dump($array);
            }
        }
        
        
        
        
        //函数运用
        
        $array=array(58,56,49,78,26,46,39,42,16,84,96);
        //scheer($array);
        quicksort($array, 0, (count($array)-1));
    ?>
  • 相关阅读:
    微信强制更新版本机制
    js常用函数
    小程序--三级联动
    vue基础知识总结
    vuex基础知识总结
    vue-cli新手总结
    css---switch开关
    flutter 主题切换
    flutter 监听返回键
    flutter-常用按钮(爬取转载)
  • 原文地址:https://www.cnblogs.com/xiashuo-he/p/3554501.html
Copyright © 2011-2022 走看看