重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

php中如何对数据排序 php数据库排序

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)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二次方项之可能性。

步骤:

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

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

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

php中对一组数字从大到小排序方法

可以把数字放到数组中,然后使用sort

将数组排序:例如

$arr=array(3,1,20,10,99,5);

asort($arr);

print_r($arr)

结果为:

Array

(

[0]

=

1

[1]

=

3

[2]

=

5

[3]

=

10

[4]

=

20

[5]

=

99

)

然后再做你想要的操作

PHP实现插入排序算法

插入排序(Insertion Sort) 是一种较稳定 简单直观的排序算法 插入排序的工作原理 是通过构建有序序列 对于未排序的数据 在有序序列中从后向前扫描 找到合适的位置并将其插入 插入排序 在最好情况下 时间复杂度为O(n);在最坏情况下 时间复杂度为O(n );平均时间复杂度为O(n )

插入排序示例图

/**

* 数据结构与算法(PHP实现) - 插入排序(Insertion Sort)。Tw.WiNGwit

*

* @author 创想编程(TOPPHP.ORG)

* @copyright Copyright (c) 2013 创想编程(TOPPHP.ORG) All Rights Reserved

* @license /licenses/mit-license.php MIT LICENSE

* @version 1.0.0 - Build20130613

*/

class InsertionSort {

/**

* 需要排序的数据数组。

*

* @var array

*/

private $data;

/**

* 数据数组的长度。

*

* @var integer

*/

private $size;

/**

* 数据数组是否已排序。

*

* @var boolean

*/

private $done;

/**

* 构造方法 - 初始化数据。

*

* @param array $data 需要排序的数据数组。

*/

public function __construct(array $data) {

$this-data = $data;

$this-size = count($this-data);

$this-done = FALSE;

}

/**

* 插入排序。

*/

private function sort() {

$this-done = TRUE;

for ($i = 1; $i $this-size; ++$i) {

$current = $this-data[$i];

if ($current $this-data[$i - 1]) {

for ($j = $i - 1; $j = 0 $this-data[$j] $current; --$j) {

$this-data[$j + 1] = $this-data[$j];

}

$this-data[$j + 1] = $current;

}

}

}

/**

* 获取排序后的数据数组。

*

* @return array 返回排序后的数据数组。

*/

public function getResult() {

if ($this-done) {

return $this-data;

}

$this-sort();

return $this-data;

}

}

?

示例代码 1

2

3

4

$insertion = new InsertionSort(array(9, 1, 5, 3, 2, 8, 6));

echo '

', print_r($insertion-getResult(), TRUE), '

'; lishixinzhi/Article/program/PHP/201311/20783

php测试数组怎么排序?

1、在test.php文件内,使用header设置test.php执行的编码为utf8,避免输出中文的时候出现乱码。

2、在test.php文件内,创建一个测试的数组,例如,定义一个分类的数组,其对应的索引值分别为0,4,8。

3、在test.php文件内,使用array_values()方法将上一步的数据重新排序,并且从0开始,把重新排序的数组保存在$result变量中。

4、在test.php文件内,使用foreach方法遍历数组,其中$k为索引值,$v为索引值对应的数组值。

5、在test.php文件内,使用echo方法输出数组中的索引值和对应的数组值即可。


网站标题:php中如何对数据排序 php数据库排序
网站路径:http://cqcxhl.cn/article/doiocdj.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP