首頁  >  文章  >  後端開發  >  php如何實現把陣列排成最小的數字(附程式碼)

php如何實現把陣列排成最小的數字(附程式碼)

不言
不言轉載
2018-10-10 11:22:162522瀏覽

這篇文章帶給大家的內容是關於php如何實現把陣列排成最小的數字(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

輸入一個正整數數組,把數組裡所有數字拼接起來排成一個數,印出能拼接出的所有數字中最小的數字。例如輸入數組{3,32,321},則印出這三個數字能排成的最小數字為321323。
解法1
1.陣列排序,使用自訂排序規則是a.b>b.a a 和b互換位置
2.usort函數的使用
##

function costomcomp(a,b)
    return a.b > b.a
usort(arr,'costomcomp')
return implode('',arr)

解法2:冒泡法

1.循環外層i
2.內層循環j,判斷條件是j=i 1;j76e624699fe5669535792b5aa779173c arr[j].arr[i] 調換位置

<?php
function customComp($a,$b){
        return intval($a.&#39;&#39;.$b) > intval($b.&#39;&#39;.$a);
}
//解法1:自定义排序
function PrintMinNumber($numbers)
{
        usort($numbers,&#39;customComp&#39;);
        return intval(implode(&#39;&#39;,$numbers));
}
$arr=array(3,32,321);
$result=PrintMinNumber($arr);
var_dump($result);

$result=PrintMinNumber2($arr);
var_dump($result);

//解法2:冒泡排序
function PrintMinNumber2($arr)
{
        $length=count($arr);
        for($i=0;$i<$length;$i++){
                for($j=$i+1;$j<$length;$j++){
                        if(intval($arr[$i].&#39;&#39;.$arr[$j])>intval($arr[$j].&#39;&#39;.$arr[$i])){
                                $temp=$arr[$i];
                                $arr[$i]=$arr[$j];
                                $arr[$j]=$temp;
                        }   
                }   
        }   
        return intval(implode(&#39;&#39;,$arr));
}

以上是php如何實現把陣列排成最小的數字(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除