栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

PHP排序算法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP排序算法


function insertSort($arr){    if(!is_array($arr) || count($arr)==0)    {        return $arr;    }    $count = count($arr);    for($i=1; $i<$count; $i++)    {        if(isset($arr[$i]))        {         $tmp = $arr[$i];//获取后一个元素的值        $j = $i -1; //获取前面的下标        while($arr[$j] > $tmp)            { //如果前面一个比后面一个大, 这里是从小到大                $arr[$j+1] =$arr[$j];  //把小的元素和前面的对换,直到移动到合适的位置,在移动下一个                $arr[$j] = $tmp;                $j--;            }        }    }    return $arr;}function selectSort($arr){    if(!is_array($arr) || count($arr) == 0)    {        return $arr;    }    $count = count($arr);    for($i=0; $i<$count; $i++)    {        $k = $i;        for($j=$i+1; $j<$count; $j++)        {        if ($arr[$k] > $arr[$j])            $k = $j; //找出最小的            if ($k != $i)            {                $tmp = $arr[$i];                $arr[$i] = $arr[$k];                $arr[$k] = $tmp;            }       }    }    return $arr;}        function bubbleSort($array){    $count = count($array);    if ($count <= 0)    {        return false;    }    for($i=0; $i<$count; $i++)    {        for($j=$count-1; $j>$i; $j--)        {            if($array[$j] < $array[$j-1])            { //比较找到的数进行交换                $tmp = $array[$j];                $array[$j] = $array[$j-1];                $array[$j-1] = $tmp;            }        }    }    return $array;}function quickSort($array){    if (count($array) <= 1)    {        return $array;    }    $key = $array[0];    $left_arr = array();    $right_arr = array();    for ($i=1; $i<count($array); $i++)    {        if ($array[$i] <= $key)            {                $left_arr[] = $array[$i];            }        else            {                $right_arr[] = $array[$i];            }    }    $left_arr = quickSort($left_arr);    $right_arr = quickSort($right_arr);    return array_merge($left_arr, array($key), $right_arr);}function sortByVal($arr,$strOrder='asc'){    if(!is_array($arr) || count($arr)==0)    {        return $arr;    }        $arrReturn = array();    foreach($arr as $key=>$val)    {        $arrKey[] = $key;        $arrVal[] = $val;    }        $count = count($arrVal);    if($count)    {        //创建key的顺序数组        for($key=0;$key<$count;$key++)        {            $arrKeyMap[$key] = $key;         }        //对值进行排序        for($i=0;$i<$count;$i++)                                    for($j = $count-1; $j>$i;$j--)            {                //<从小到大排列 升降在这修改                $bol = $strOrder == 'asc' ? $arrVal[$j]<$arrVal[$j-1] : $arrVal[$j]>$arrVal[$j-1];                if($bol){                    $tmp = $arrVal[$j];                    $arrVal[$j] = $arrVal[$j-1];                    $arrVal[$j-1] = $tmp;                    //值的冒泡排序,引起key的数组的交互                       $keytmp = $arrKeyMap[$j];                    $arrKeyMap[$j] = $arrKeyMap[$j-1];                    $arrKeyMap[$j-1] = $keytmp;                }            }        }        if(count($arrKeyMap))        {            foreach ($arrKeyMap as $val)            {                    $arrReturn[] = $arrKey[$val];            }        }        return $arrReturn;    }}function arraySortByVal($arr,$keys,$type='asc'){    $keysvalue = $new_array = array();    foreach ($arr as $k=>$v){        $keysvalue[$k] = $v[$keys];    }    if($type == 'asc'){        asort($keysvalue);    }else{        arsort($keysvalue);    }    reset($keysvalue);    foreach ($keysvalue as $k=>$v){        $new_array[$k] = $arr[$k];    }    return $new_array;}?>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/225090.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号