PHP排序演算法的複習和總結

2022-10-06 13:42:18 字數 1994 閱讀 1456

直接上**吧!

複製** **如下:

php

/* * 插入排序(一維陣列)

* 每次將乙個待排序的資料元素,插入到前面已經排好序的數列中的適當的位置,使數列依然有序;直到待排序的資料元素全部插入完成為止。

*/ function insertsort($arr)

$count = count($arr);

for($i=1; $iif(isset($arr[$i]))

} }

return $arr;

}   

/* * 選擇排序(一維陣列) 程式設計客棧

* 每一趟從待排序的資料元素中選出最小(最大)的乙個元素,順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。

*/ function selectsort($arr)

$count = count($arr);

for($i=0; $i$k = $i;

for($j=$i+1; $j  if ($arr[$k] > $arr[$j])

$k = $j; //找出最小的

if ($k != $i)

} }

return $arr;

} /*  

* 氣泡排序(一維陣列)

* 兩兩比較待排序資料元素的大小,發現兩個資料元素的次序相反即進行交換,直到沒有反序的資料元素為止

*/ function bubblesort($array)

for($i=0; $ifor($j=$count-1; $j>$i; $j--)

} }

return $array;

}   

/* * 快速排序(一維陣列)

* */

function quicksort($array)

$key $array[0];

$left_arr = array();

$right_arr = array();

for ($i=1; $i  if ($array[$i] <= $key)else

} $left_arr = quicksort($left_arr);

$right_arr = quicksort($right_arr);

return array_merge($left_arr, array($key), $right_arr);

} /**

* 按照元素的值進行排序

* strorder 為排列的順序 asc 公升序 desc 降序

*/ function sortbyval($arr,$strorder='asc')

$arrreturn = array();

foreach($arr as $key=>$val)

$count = count($arrval);

if($count)

//對值進行排序

for($i=0;$i《程式設計客棧;$count;$i++) }

} if(count($arrkeymap)) }

return $arrreturn;

} }

/**

* 使用原生的函式進行陣列按照值進行排列

*/ function arraysortbyval($arr,$keys,$type='asc')

if($type == 'asc')else

reset($keysvalue);

foreach ($keysvalue as $k=>$v)

return $new_array; }

對於下面的2個對於array的值進行排序的方法乙個是自己實現的乙個是使用了原生的php函式的,其實排序對於少量資料一般就單頁的資料量的資料還是可以的,如果涉及到大量的資料的排序,建議可以整合到mysql的基礎類中來進行。

本文標題: php排序演算法的複習和總結

本文位址: /wangluo/php/86446.html

經典排序演算法複習總結

前置定義 in place sort 不占用額外記憶體或占用常數的記憶體 插入排序 選擇排序 氣泡排序 堆排序 快速排序。out place sort 歸併排序 計數排序 基數排序 桶排序。stable sort 插入排序 氣泡排序 歸併排序 計數排序 基數排序 桶排序。unstable sort ...

排序演算法 總結與複習

直接插入排序 穩定排序 時間複雜度 o n2 void insertsort int data,int n if j i 1 data j 1 temp view code 二分法插入排序 穩定排序 o n2 void binsort int data,int n for int j i 1 j l...

排序演算法複習

參考自 直接插入排序 從小到大排列 n個資料,第乙個資料平凡有序 假設前i 1個資料串有序,根據第i個的大小將第i個插入到此串中,則前i個的資料串也有序。因此可得到n個資料有序。插入方法 待插入元素為第i元素,數值存為temp,將 i 之前的元素 j 從第 i 1 元素開始與之比較 如果比temp大...