介绍
今天就跟大家聊聊有关利用php怎么有序的打印数组,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
具体如下:
有序的数组打印或排序对于php来讲非常的简单了这里整理了几个不同语言的做法的实现代码,具体的我们一起来看这篇php中有序的数组打印或排序的例子吧。
最近有个面试题挺火的,把2个有序的数组打印或排序,刚看到这个题的时候也有点蒙,最优的算法肯定要用到有序的特性。
思考了一会发现也不是很难,假如数组是正序排列的,可以同时遍历两个数组,将小的值进行排序,最后会遍历完一个数组,留下一个非空数组,而且剩下的值肯定大于等于已经排好序的最大值。
PHP代码:
& lt; PHP ? function 才能;sort_arr (a, b)美元,{ ,,,temp 美元;=,数组(); ,,,while (第一部美元;和b美元),{ ,,,,,如果(一个美元[& # 39;0 & # 39;]& lt; b美元[& # 39;0 & # 39;]),{ ,,,,,,,临时[],美元=,array_shift(美元); ,,,,,},{else ,,,,,,,临时[],美元=,array_shift ($ b); ,,,,,} ,,,} ,,,如果(! emptyempty(美元)),{,temp 美元;=,array_merge(临时美元,,),,} ,,,如果(! emptyempty (b)美元),{,temp 美元;=,array_merge(临时美元,,b);,} ,,,return 临时美元; ,,} 时间=美元才能a 数组(1、2、3、4、5、6); 时间=美元才能b 数组(2、3、4、10、10、10、10); sort_arr才能(一个美元,,b); 祝辞;
运行得到的新数组为:
数组 ( [0]才能,=在1 [1],才能=祝辞;2 [2],才能=祝辞;2 [3],才能=祝辞;3 [4],才能=祝辞;3 [5],才能=祝辞;4 [6],才能=祝辞;4 [7],才能=祝辞;5 [8],才能=祝辞;6 [9]才能,=在10 [10]才能,=在10 [11]才能,=在10 [12]才能,=在10 )
其他语言实现代码:
Python代码:
def fib (a, b): len_a 才能=,len (a) 时间=c 才能;[] while 才能len (a),以及len (b): ,,,if 一个[0],祝辞,b [0]: ,,,,,c.append (b.pop (0)) ,,,: ,,,,,c.append (a.pop (0)) if 才能len(一个): ,,,c =c + if 才能len (b): ,,,c =c + b 我才能=0 while 才能;i< len (c): ,,,印刷(c[我]) ,,,小姐:=i + 1 a =, (1、2、3、4、5)=b [2, 3, 4, 5, 6, 7, 8, 9) fib (a, b)
C代码:
# include , amp;肝移植;stdio.h&音箱;gt;; int *排序([],int int b [], int a_len,, int b_len), { int 才能;* temp =, malloc (a_len + b_len); int 才能;i=0,//标注一数组 int 才能;j=0,//标注数b组 int 才能;m=0,//标注新数组 while 才能;(打折期;音箱;肝移植;a_len&音箱;音箱;,amp;音箱;j&音箱;肝移植;b_len),{,//重新排序,如果(一个[我],amp;肝移植;b [j]), { ,,,,,临时[m + +],=, b [j + +); ,,,},{else ,,,,,临时[m + +],=, (+ +); ,,,} ,,}//将才能剩余的数字放在新数组后面(剩余的肯定是前面的数字大) 如果才能(打折期;音箱;肝移植;a_len), { ,,,for (打折期;,amp;肝移植;a_len;,我+ +),{ ,,,,,临时[m + +],=,(我); ,,,} ,,} 如果才能(j&音箱;肝移植;b_len), { ,,,for (;, j&音箱;肝移植;b_len;, j + +), { ,,,,,临时[m + +],=, b [j]; ,,,} ,,} return 才能;温度; } 命令行参数个数,int 主要(int const char *, argv []), { int 才能;[4],=,{89年2、3、11日}; int 才能;b[6],=,{4, 6, 9、10, 22岁,55}; int 才能;a_len =, sizeof (a),/, sizeof ([0]); int 才能;b_len =, sizeof (b),/, sizeof (b [0]); int 才能;* c =,排序(a, b,, a_len,, b_len); int 才能;y =, 0; for 才能;(,y&音箱;肝移植;a_len + b_len;, y + +), { ,,,printf (“% d “, c [y]); ,,} return 才能;0; }
去代码:
代码如下:
包主要进口“fmt"
函数主要(){
,,,var=[5] int {1, 2, 3, 4, 5}
,,,var b=[8] int {4、5、6、7、89、100、111、112}
,,,var len_a=len (a)
,,,var len_b=len (b)
,,,var c=使(int [], len_a + len_b)
,,,var j=0//标注数一组
,,,var k=0//标注数b组
,,,var h=0//标注新数组
,,,j, amp;肝移植;len_a, amp;音箱;,amp;音箱;k, amp;肝移植;len_b {