中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

PHP排序算法的復(fù)習(xí)和總結(jié)

直接上代碼吧!
復(fù)制代碼 代碼如下:
<?php
/*
* 插入排序(一維數(shù)組)
* 每次將一個(gè)待排序的數(shù)據(jù)元素,插入到前面已經(jīng)排好序的數(shù)列中的適當(dāng)?shù)奈恢茫箶?shù)列依然有序;直到待排序的數(shù)據(jù)元素全部插入完成為止。
*/
function insertSort($arr){
if(!is_array($arr) || count($arr)==0){
return $arr;
}
$count = count($arr);
for($i=1; $i<$count; $i++){
if(isset($arr[$i])){
   $tmp = $arr[$i]; //獲取后一個(gè)元素的值
   $j = $i - 1; //獲取前面的下標(biāo)
   while($arr[$j] > $tmp){ //如果前面一個(gè)比后面一個(gè)大, 這里是從小到大
    $arr[$j+1] = $arr[$j]; //把小的元素和前面的對(duì)換,直到移動(dòng)到合適的位置,在移動(dòng)下一個(gè)
    $arr[$j] = $tmp;
    $j--;
   }
}
}
return $arr;
}
  
/*
* 選擇排序(一維數(shù)組)
* 每一趟從待排序的數(shù)據(jù)元素中選出最小(最大)的一個(gè)元素,順序放在已排好序的數(shù)列的最后,直到全部待排序的數(shù)據(jù)元素排完。
*/
function selectSort($arr){
if(!is_array($arr) || count($arr) == 0)
{
return $arr;
}
$count = count($arr);
for($i=0; $i<$count; $i++){
$k = $i;
for($j=$i+1; $j<$count; $j++){
  if ($arr[$k] > $arr[$j])
    $k = $j; //找出最小的
   if ($k != $i){
     $tmp = $arr[$i];
     $arr[$i] = $arr[$k];
     $arr[$k] = $tmp;
   }
}
}
return $arr;
}
/*  
* 冒泡排序(一維數(shù)組)
* 兩兩比較待排序數(shù)據(jù)元素的大小,發(fā)現(xiàn)兩個(gè)數(shù)據(jù)元素的次序相反即進(jìn)行交換,直到?jīng)]有反序的數(shù)據(jù)元素為止
*/
function bubbleSort($array){
$count = count($array);
if ($count <= 0) {
return false;
}
for($i=0; $i<$count; $i++){
for($j=$count-1; $j>$i; $j--){
   if ($array[$j] < $array[$j-1]){ //比較找到的數(shù)進(jìn)行交換
    $tmp = $array[$j];
    $array[$j] = $array[$j-1];
    $array[$j-1] = $tmp;
   }
}
}
return $array;
}
  
/*
* 快速排序(一維數(shù)組)
*
*/
function quickSort($array){
if (count($array) <= 1){
return $array;
}
$key = $array[0];
$left_arr = array();
$right_arr = array();
for ($i=1; $i<count($array); $i++){
  if ($array[$i] <= $key){
   $left_arr[] = $array[$i];
  }else{
 $right_arr[] = $array[$i];
}
}
$left_arr = quickSort($left_arr);
$right_arr = quickSort($right_arr);
return array_merge($left_arr, array($key), $right_arr);
}
/**
* 按照元素的值進(jìn)行排序
* strOrder 為排列的順序 asc 升序 desc 降序
*/
function sortByVal($arr,$strOrder='asc')
{
if(!is_array($arr) || count($arr)==0)
{
return $arr;
}
$arrReturn = array();
foreach($arr as $key=>$val)
{
$arrKey[] = $key;
$arrVal[] = $val;
}
$count = count($arrVal);
if($count)
{
//創(chuàng)建key的順序數(shù)組
for($key=0;$key<$count;$key++)
{
$arrKeyMap[$key] = $key;
}
//對(duì)值進(jìn)行排序
for($i=0;$i<$count;$i++)
{
for($j = $count-1; $j>$i;$j--)
{
//<從小到大排列 升降在這修改
$bol = $strOrder == 'asc' ? $arrVal[$j]<$arrVal[$j-1] : $arrVal[$j]>$arrVal[$j-1];
if($bol){
$tmp = $arrVal[$j];
$arrVal[$j] = $arrVal[$j-1];
$arrVal[$j-1] = $tmp;
//值的冒泡排序,引起key的數(shù)組的交互
$keytmp = $arrKeyMap[$j];
$arrKeyMap[$j] = $arrKeyMap[$j-1];
$arrKeyMap[$j-1] = $keytmp;
}
}
}
if(count($arrKeyMap))
{
foreach ($arrKeyMap as $val)
{
$arrReturn[] = $arrKey[$val];
}
}
return $arrReturn;
}
}
/**
* 使用原生的函數(shù)進(jìn)行數(shù)組按照值進(jìn)行排列
*/
function arraySortByVal($arr,$keys,$type='asc'){
$keysvalue = $new_array = array();
foreach ($arr as $k=>$v){
$keysvalue[$k] = $v[$keys];
}
if($type == 'asc'){
asort($keysvalue);
}else{
arsort($keysvalue);
}
reset($keysvalue);
foreach ($keysvalue as $k=>$v){
$new_array[$k] = $arr[$k];
}
return $new_array;
}

對(duì)于下面的2個(gè)對(duì)于array的值進(jìn)行排序的方法一個(gè)是自己實(shí)現(xiàn)的一個(gè)是使用了原生的php函數(shù)的,其實(shí)排序?qū)τ谏倭繑?shù)據(jù)一般就單頁(yè)的數(shù)據(jù)量的數(shù)據(jù)還是可以的,如果涉及到大量的數(shù)據(jù)的排序,建議可以整合到MYSQL的基礎(chǔ)類中來(lái)進(jìn)行。

php技術(shù)PHP排序算法的復(fù)習(xí)和總結(jié),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 天天夜夜操 | 看av电影 | 亚洲国产一区二区三区 | 日本精品一区二区三区在线观看视频 | 日本粉嫩一区二区三区视频 | 日本二区在线观看 | 91精品国产欧美一区二区成人 | 91社区在线观看 | 亚洲国产一区二区三区四区 | 久久欧美精品 | 国产精品国产三级国产aⅴ原创 | 精品一区二区三区四区外站 | 久久精品成人 | 欧美色欧美亚洲另类七区 | 精品国产一区二区三区久久久四川 | 亚洲黄色网址视频 | 欧美精品一区二区三区在线 | 97视频在线免费 | 精品一区二区观看 | 久久综合狠狠综合久久综合88 | 欧美日韩精品影院 | 999久久久久久久久 国产欧美在线观看 | 欧美专区在线 | 精品国产欧美一区二区三区成人 | 精品国产一区二区三区久久 | 一级黄色毛片 | 国产精品久久9 | 欧美国产视频一区二区 | 久久精品国产v日韩v亚洲 | 精品国产青草久久久久96 | 国产精品福利视频 | 国产成人午夜精品影院游乐网 | 成人av高清| 久久久青草婷婷精品综合日韩 | 国产精品久久久久久婷婷天堂 | 国产免费观看一级国产 | 亚洲高清一区二区三区 | 国产97久久 | 久久久久久色 | 亚洲 中文 欧美 日韩 在线观看 | 久久久久久久久久久久亚洲 |