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

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

不言
發布: 2023-04-04 09:20:02
轉載
2554 人瀏覽過

這篇文章帶給大家的內容是關於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;j3.內層調換arr[i ].arr[j] > 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中文網其他相關文章!

相關標籤:
php
來源:cnblogs.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板