Heim >Backend-Entwicklung >PHP-Tutorial >php中数组排序各种方法_PHP教程

php中数组排序各种方法_PHP教程

WBOY
WBOYOriginal
2016-07-13 16:55:551018Durchsuche

在我们学程序时就知道排序大概有泡排序法、快速排序法、选择排序法等,同时排序方法 分为两在类内部和外部。

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


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

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

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

 代码如下 复制代码

function bubbleSort(&$myarr){
$temp=0;//定义一个中间变量
//外层循环
for($i=0;$i for($j=0;$j $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 //假设$i就是最小的数
$minval=$myarr[$i];
//记录我认为的最小数的下标
$minIndex=$i;

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

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

}

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

}

4、插入排序法

查询速度:冒泡排序法

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

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/631630.htmlTechArticle在我们学程序时就知道排序大概有泡排序法、快速排序法、选择排序法等,同时排序方法分为两在类内部和外部。 数组的排序方法 分为两在...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn