加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

[PHP] 算法-把数组排成最小的数的PHP实现

发布时间:2020-05-25 03:11:18 所属栏目:PHP 来源:互联网
导读:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。解法11.数组排序,使用自定义排序规则是 a.bb.a a 和 b互换位置2.usort函数的使用fu

<div class="cnblogs_code">

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321解法1
1.数组排序,使用自定义排序规则是 a.b>b.<span style="color: #000000">a a 和 b互换位置
2.<span style="color: #000000">usort函数的使用

<span style="color: #0000ff">function costomcomp(a,<span style="color: #000000">b)
<span style="color: #0000ff">return a.b > b.<span style="color: #000000">a
<span style="color: #008080">usort(arr,'costomcomp'<span style="color: #000000">)
<span style="color: #0000ff">return <span style="color: #008080">implode('',<span style="color: #000000">arr)

解法2:冒泡法
1.<span style="color: #000000">循环外层 i
2.内层循环 j,判断条件是j=i+1;j<arr.length;j++
3.内层调换 arr[i].arr[j] > arr[j].arr[i] 调换位置

(.''. PrintMinNumber((,'customComp' (('',=(3,32,321=PrintMinNumber((<span style="color: #800080">$result=PrintMinNumber2(<span style="color: #800080">$arr<span style="color: #000000">);
<span style="color: #008080">var_dump(<span style="color: #800080">$result<span style="color: #000000">);

<span style="color: #008000">//<span style="color: #008000">解法2:冒泡排序
<span style="color: #0000ff">function PrintMinNumber2(<span style="color: #800080">$arr<span style="color: #000000">)
{
<span style="color: #800080">$length=<span style="color: #008080">count(<span style="color: #800080">$arr<span style="color: #000000">);
<span style="color: #0000ff">for(<span style="color: #800080">$i=0;<span style="color: #800080">$i<<span style="color: #800080">$length;<span style="color: #800080">$i++<span style="color: #000000">){
<span style="color: #0000ff">for(<span style="color: #800080">$j=<span style="color: #800080">$i+1;<span style="color: #800080">$j<<span style="color: #800080">$length;<span style="color: #800080">$j++<span style="color: #000000">){
<span style="color: #0000ff">if(<span style="color: #008080">intval(<span style="color: #800080">$arr[<span style="color: #800080">$i].''.<span style="color: #800080">$arr[<span style="color: #800080">$j])><span style="color: #008080">intval(<span style="color: #800080">$arr[<span style="color: #800080">$j].''.<span style="color: #800080">$arr[<span style="color: #800080">$i<span style="color: #000000">])){
<span style="color: #800080">$temp=<span style="color: #800080">$arr[<span style="color: #800080">$i<span style="color: #000000">];
<span style="color: #800080">$arr[<span style="color: #800080">$i]=<span style="color: #800080">$arr[<span style="color: #800080">$j<span style="color: #000000">];
<span style="color: #800080">$arr[<span style="color: #800080">$j]=<span style="color: #800080">$temp<span style="color: #000000">;
}
}
}
<span style="color: #0000ff">return <span style="color: #008080">intval(<span style="color: #008080">implode('',<span style="color: #800080">$arr<span style="color: #000000">));
}

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读