PHP百度面试题:版本号排序
2014-02-25 13:40
585 查看
$a = "111.101.202.1.0"; $b = "111.101.202.1.1"; $va = explode('.', $a); $vb = explode('.', $b); //比较函数 function comparefun($va,$vb){ $a = array_shift($va); $b = array_shift($vb); if($a>$b){ echo '前者版本高'; return 0; }elseif($a<$b){ echo '后者版本高'; return 0; }else{ return comparefun($va,$vb); } } comparefun($va,$vb);
然后怎么排序呢?似乎面试的最后都是排序题
做一个简单的冒泡排序:
$versionArr=array( "111.101.202.1.0", "111.101.202.1.1", "112.101.202.1.1", "111.103.202.1.1", "111.103.201.0.1" ); //比较函数 function comparefun($va,$vb){ $a = array_shift($va); $b = array_shift($vb); if($a>$b){ return 1; }elseif($a<$b){ return 0; }else{ return comparefun($va,$vb); } } array_walk($versionArr, function(&$value){ $value = explode('.', $value); }); for($i=0;$i<count($versionArr)-1;$i++ ){ for($j=0;$j<count($versionArr)-1-$i;$j++){ if(comparefun($versionArr[$j],$versionArr[$j+1])){ $tmp = $versionArr[$j]; $versionArr[$j] = $versionArr[$j+1]; $versionArr[$j+1] = $tmp; } } } array_walk($versionArr, function(&$value){ $value = implode('.', $value); }); var_dump($versionArr);
相关文章推荐
- 如何用“友好”的方式告诉经理:拥有一个好程序员是你的幸运?
- 黑马程序员----IO流
- 黑马程序员—交通灯管理系统
- 如何用“友好”的方式告诉经理:拥有一个好程序员是你的幸运?
- 职业社交应用LinkedIn入华,改名“领英”
- 程序员如何沟通?
- 我的印度IT之都清奈之行
- 程序员的一生爱你
- LeetCode 139 Word Break
- 类似分页精典面试题
- Ali相关面试题
- 如何用“友好”的方式告诉经理:拥有一个好程序员是你的幸运?
- 程序猿尤其是.NET程序员所需要注意的网站资源 求补充
- 程序员的视角:java GC
- 程序员的视角:java GC
- 程序员的视角:java GC
- 如何成为一名程序员:我的道路
- 如何判断自己是否具有成为一名优秀程序员的潜质
- 如何判断自己是否具有成为一名优秀程序员的潜质
- [leetcode]Convert Sorted Array to Balanced Binary Search Tree (BST)