亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

php如何實(shí)現(xiàn)把數(shù)組排成最小的數(shù)(附代碼)

來源:轉(zhuǎn)載 發(fā)布時(shí)間:2018-10-10 15:52:04 閱讀量:840

本篇文章給大家?guī)淼膬?nèi)容是關(guān)于php如何實(shí)現(xiàn)把數(shù)組排成最小的數(shù)(附代碼),有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。

輸入一個(gè)正整數(shù)數(shù)組,把數(shù)組里所有數(shù)字拼接起來排成一個(gè)數(shù),打印能拼接出的所有數(shù)字中最小的一個(gè)。例如輸入數(shù)組{3,32,321},則打印出這三個(gè)數(shù)字能排成的最小數(shù)字為321323。
解法1
1.數(shù)組排序,使用自定義排序規(guī)則是 a.b>b.a a 和 b互換位置
2.usort函數(shù)的使用

1

2

3

4

function costomcomp(a,b)

    return a.b > b.a

usort(arr,'costomcomp')

return implode('',arr)

解法2:冒泡法
1.循環(huán)外層 i
2.內(nèi)層循環(huán) j,判斷條件是j=i+1;j<arr.length;j++
3.內(nèi)層調(diào)換 arr[i].arr[j] > arr[j].arr[i] 調(diào)換位置

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

<?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));

}


標(biāo)簽: PHP
分享:
評(píng)論:
你還沒有登錄,請(qǐng)先