這篇文章帶給大家的內容是關於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)
1.循環外層i
2.內層循環j,判斷條件是j=i 1;j
<?php function customComp($a,$b){ return intval($a.''.$b) > intval($b.''.$a); } //解法1:自定义排序 function PrintMinNumber($numbers) { usort($numbers,'customComp'); return intval(implode('',$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].''.$arr[$j])>intval($arr[$j].''.$arr[$i])){ $temp=$arr[$i]; $arr[$i]=$arr[$j]; $arr[$j]=$temp; } } } return intval(implode('',$arr)); }
以上是php如何實現把陣列排成最小的數字(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!