×

数组从小到大排序php

数组从小到大排序php(数组从小到大排序python)

admin admin 发表于2023-04-04 14:59:09 浏览45 评论0

抢沙发发表评论

本文目录一览:

php数组从大到小排序谁帮忙想下感谢

你好,建议使用冒泡排序法,这样看上去比较清楚明了,你这样编写就比较复杂了。

php数组排序通过id键小到大排

首先要纠正一个问题,'a'=aa这个写法是错误的,aa是字符串,一定要要上引号('a'='aa')。

这个排序很简单,只需要用到php的两个函数。

1、我先合并数组 array_merge();

$arr[0]=array('id'=2,'a'='aa');

$arr[1]=array('id'=1,'a'='aa');

$arr[2]=array('id'=3,'a'='aa');

$arr=array_merge($arr);//合并数组

2、按数字从小到大排序 sort();

sort($arr);//进行排序

3、最后得到的数据如下:

Array

(

[0] = Array

(

[id] = 1

[a] = aa

)

[1] = Array

(

[id] = 2

[a] = aa

)

[2] = Array

(

[id] = 3

[a] = aa

)

)

在PHP中,比较三个数大小,由小到大排列?

$a=3;

$b=2;

$c=1;

function compare($x,$y)

{

if($x$y){ $temp=$y; $y=$x; $x=$temp; }

}

compare($a,$b);// a,b中 小的值存在a,大的值存在b

compare($a,$c);// a,c中 小的值存在a,大的值存在c //到这一步 a中值最小

compare($b,$c);// b,c中 小的值存在b,大的值存在c //到这一步 c中值最大

echo "{$a}{$b}{$c}";

PHP实现常见的排序算法

注:为方便描述,下面的排序全为正序(从小到大排序)

假设有一个数组[a,b,c,d]

冒泡排序依次比较相邻的两个元素,如果前面的元素大于后面的元素,则两元素交换位置;否则,位置不变。具体步骤:

1,比较a,b这两个元素,如果ab,则交换位置,数组变为:[b,a,c,d]

2,比较a,c这两个元素,如果ac,则位置不变,数组变为:[b,a,c,d]

3,比较c,d这两个元素,如果cd,则交换位置,数组变为:[b,a,d,c]

完成第一轮比较后,可以发现最大的数c已经排(冒)在最后面了,接着再进行第二轮比较,但第二轮比较不必比较最后一个元素了,因为最后一个元素已经是最大的了。

第二轮比较结束后,第二大的数也会冒到倒数第二的位置。

依次类推,再进行第三轮,,,

就这样最大的数一直往后排(冒),最后完成排序。所以我们称这种排序算法为冒泡排序。

选择排序是一种直观的算法,每一轮会选出列中最小的值,把最小值排到前面。具体步骤如下:

插入排序步骤大致如下:

快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二次方项之可能性。-数组从小到大排序php

步骤:

从数列中挑出一个元素,称为 “基准”(pivot),

重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。-数组从小到大排序php

递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。