利用php怎么有序的打印数组

  介绍

今天就跟大家聊聊有关利用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 {

利用php怎么有序的打印数组