一、排序的两大类
二、冒泡排序法
①、基本思想
②、案例分析:从小到大排序
三、选择排序法
①、基本思想
②、案例分析:从小到大排序
四、插入排序法
分三种:插入排序法、希尔排序法、二叉树排序法
①、基本思想
②、案例分析
function insertSort(&$arr)
{
//先默认下表为0这个数已经有序
for($i=1;$i=0 && $insertVal<$arr[$insertIndex]){
//把较大的数后移
$arr[$insertIndex+1] = $arr[$insertIndex];
$insertIndex--;
}
//插入(这时为$indexVal找到适当的位置了)
$arr[$insertIndex+1] = $insertVal;
}
}
五、快速排序法
六、总结
①、数组默认传递的是值,不是地址。如果要传递地址 ,用&
②、从效率上看:冒泡排序法 > 选择排序法 > 插入排序法
七、二维数组排序
//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序
function array_sort($arr, $keys, $order=0) {
if (!is_array($arr)) {
return false;
}
$keysvalue = array();
foreach($arr as $key => $val) {
$keysvalue[$key] = $val[$keys];
}
if($order == 0){
asort($keysvalue);
}else {
arsort($keysvalue);
}
reset($keysvalue);
foreach($keysvalue as $key => $vals) {
$keysort[$key] = $key;
}
$new_array = array();
foreach($keysort as $key => $val) {
$new_array[$key] = $arr[$val];
}
return $new_array;
}