ホームページ  >  記事  >  バックエンド開発  >  PHPで配列を最小の数に配置する方法(コードが添付されています)

PHPで配列を最小の数に配置する方法(コードが添付されています)

不言
不言転載
2018-10-10 11:22:162528ブラウズ

この記事の内容は、PHPで配列を最小の数に並べる方法(コード付き)ですので、ある程度参考になる内容ですので、困っている方は参考にしていただければ幸いです。

正の整数の配列を入力し、配列内のすべての数値を連結して数値を形成し、連結できるすべての数値の中で最小の数値を出力します。たとえば、配列 {3, 32, 321} を入力した場合、これら 3 つの数値を出力できる最小の数値は 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 in を置き換えます内側の層 ].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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。