php中数组排序各种方法

数组的排序方法
分为两在类:
1、内(内存)部排序
2、外部排序(数据量很大,内存放不下,需要借助外部
存储)

----------------
排序sorting是一个程序员的基本功
一:内部排序
(1)交换式排序
1、冒泡法

数组默认的传递是值传递,而不是地址传递
后面将讲到对象类型,对象默认的传递就是地址传递

//优化,将冒泡排序法封装成函数,利于以后使用

 代码如下 复制代码

function bubbleSort(&$myarr){
$temp=0;//定义一个中间变量
//外层循环
for($i=0;$i<count($myarr)-1;$i++){
for($j=0;$j<count($myarr)-1-$i;
$j++){
if($myarr[$j]>$myarr[$j
+1]){
$temp=$myarr[$j];
$myarr[$j]=
$myarr[$j+1];
$myarr[$j+1]=
$temp;
}

}
}
}

$arry=array(2,6,-4,7,9,0);
bubbleSort($arry);
print_r($arry);

2、快速排序法(神奇的快速,涉及到递归)

3、选择排序法

 代码如下 复制代码

function selectSort(&$myarr){
$temp=0;
for($i=0;$i<count($myarr)-1;$i++){
//假设$i就是最小的数
$minval=$myarr[$i];
//记录我认为的最小数的下标
$minIndex=$i;

for($j=$i+1;$j<count($myarr);$j+
+){
//说明我们认为的最小值,不是最小
if($minval>$myarr[$j]){

$minval=$myarr[$j];
$minIndex=$j;

}

}
//最后交换
$temp=$myarr[$i];
$myarr[$i]=$myarr[$minIndex];
$myarr[$minIndex]=$temp;
}

}

4、插入排序法

查询速度:冒泡排序法<选择排序法<插入排序法

个人最喜欢用的是交换排序了,就是大家说的泡泡排序法了,这种方法比较好用,但不适于大数据量的排序。

时间: 2024-10-03 14:40:08

php中数组排序各种方法的相关文章

php中array_multisort对多维数组排序的方法_php技巧

本文实例讲述了php中array_multisort对多维数组排序的方法.分享给大家供大家参考.具体实现方法如下: function sort_array($array, $keyid, $order='asc', $type='number') { if(is_array($array)) { foreach($array as $val) { $order_arr[] = $val[$keyid]; } $order = ($order == 'asc') ? SORT_ASC: SORT_

python中的sort方法使用详解_python

Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的. x = [4, 6, 2, 1, 7, 9] x.sort() print x # [1, 2, 4, 6, 7, 9] 如果需要一个排序好的副本,同时保持原有列表不变,怎么实现呢 x =[4, 6, 2, 1, 7, 9] y = x[ : ] y.sort() print y #[1,

php通过sort()函数给数组排序的方法_php技巧

本文实例讲述了php通过sort()函数给数组排序的方法.分享给大家供大家参考.具体分析如下: sort()函数用于给数组排序,本函数为数组中的单元赋予新的键名.原有的键名将被删除. 如果成功则返回 TRUE,否则返回 FALSE. $alpha = array ("x", "a", "f", "c"); sort( $alpha ); foreach ( $alpha as $var ) { print "$var

详解Python中的type()方法的使用

  这篇文章主要介绍了详解Python中的type()方法的使用,是Python入门中的基础知识,需要的朋友可以参考下 type()方法返回传递变量的类型.如果传递变量是字典那么它将返回一个字典类型. 语法 以下是type()方法的语法: ? 1 type(dict) 参数 dict -- 这是字典 返回值 此方法返回传递变量的类型. 例子 下面的例子显示type()方法的使用 ? 1 2 3 4 #!/usr/bin/python   dict = {'Name': 'Zara', 'Age'

Python中使用items()方法返回字典元素对的教程

  这篇文章主要介绍了Python中使用items()方法返回字典元素对的教程,是Python入门中的基础知识,需要的朋友可以参考下 items()方法返回字典的(键,值)元组对的列表 语法 以下是items()方法的语法: ? 1 dict.items() 参数 NA 返回值 此方法返回元组对的列表. 例子 下面的例子显示了items()方法的使用. ? 1 2 3 4 5 #!/usr/bin/python   dict = {'Name': 'Zara', 'Age': 7}   prin

Python中使用swapCase()方法转换大小写的教程

  这篇文章主要介绍了在Python中使用swapCase()方法转换大小写的教程,是Python入门中的基础知识,需要的朋友可以参考下 swapCase()方法返回所有可大小写,基于字符大小写交换字符串的一个副本. 语法 以下是swapCase()方法的语法: ? 1 str.swapcase(); 参数 NA 返回值 此方法返回其中所有基于大小写字符交换字符串的一个副本. 例子 下面的例子显示的swapCase()方法的使用. ? 1 2 3 4 5 6 7 #!/usr/bin/pytho

简单介绍Python2.x版本中的cmp()方法的使用

  这篇文章主要介绍了简单介绍Python2.x版本中的cmp()方法的使用,然而该方法在Python3.x版本中已并不再内置...需要的朋友可以参考下 cmp()方法比较两个列表的元素. 语法 以下是cmp()方法的语法: ? 1 cmp(list1, list2) 参数 list1 -- 这是要进行比较的第一个列表 list2 -- 这是要进行比较的第二个列表 返回值 如果元素是相同类型的,执行比较,并返回结果.如果元素是不同的类型,检查,看看他们是否是数字 如果是数字必要时强制进行数字比较

Python中List.count()方法的使用教程

  这篇文章主要介绍了Python中List.count()方法的使用教程,是Python入门中的基础知识,需要的朋友可以参考下 count()方法返回obj出现在列表的次数. 语法 以下是count()方法的语法: ? 1 list.count(obj) 参数 obj -- 这是在该列表被计数的对象. 返回值 此方法返回obj出现在列表的次数. 例子 下面的例子显示了count()方法的使用. ? 1 2 3 4 5 6 #!/usr/bin/python   aList = [123, 'x

Python中List.index()方法的使用教程

  这篇文章主要介绍了Python中List.index()方法的使用教程,是Python入门中的基础知识,需要的朋友可以参考下 index()方法返回obj出现在列表中最低位索引. 语法 以下是index()方法的语法: ? 1 list.index(obj) 参数 obj -- 这是被找到的对象 返回值 此方法返回找到的对象的索引,否则抛出一个异常,表明没有找到对应值 例子 下面的例子显示了index()方法的使用 ? 1 2 3 4 5 6 #!/usr/bin/python   aLis