php常見演算法

2021-09-17 08:39:23 字數 1872 閱讀 3887

基本思想:

對需要排序的陣列從後往前(逆序)進行多遍的掃瞄,當發現相鄰的兩個數值的次序與排序要求的規則不一致時,就將這兩個數值進行交換。這樣比較小(大)的數值就將逐漸從後面向前面移動。

<?php

function mysort($arr)

}if($issort)

}return $arr;

} $arr = array(3,1,2);

var_dump(mysort($arr));

?>

基本思想:

在陣列中挑出乙個元素(多為第乙個)作為標尺,掃瞄一遍陣列將比標尺小的元素排在標尺之前,將所有比標尺大的元素排在標尺之後,通過遞迴將各子串行分別劃分為更小的序列直到所有的序列順序一致。

<?php

//快速排序

function quick_sort($arr)

$base_num = $arr[0];//選擇乙個標尺 選擇第乙個元素

//初始化兩個陣列

$left_array = array();//小於標尺的

$right_array = array();//大於標尺的

for($i=1; $i<$length; $i++)

else

}//再分別對 左邊 和 右邊的陣列進行相同的排序處理方式

//遞迴呼叫這個函式,並記錄結果

$left_array = quick_sort($left_array);

$right_array = quick_sort($right_array);

//合併左邊 標尺 右邊

return array_merge($left_array, array($base_num), $right_array);

}$arr = array(3,1,2);

var_dump(quick_sort($arr));

?>

基本思想:

假設資料是按公升序排序的,對於給定值x,從序列的中間位置開始比較,如果當前位置值等於x,則查詢成功;若x小於當前位置值,則在數列的前半段中查詢;若x大於當前位置值則在數列的後半段中繼續查詢,直到找到為止。(資料量大的時候使用)

<?php

//二分查詢

function bin_search($arr,$low,$high,$k)

else if($k < $arr[$mid])

else

}return -1;

} $arr = array(1,2,3,4,5,6,7,8,9,10);

print(bin_search($arr,0,9,3));

?>

基本思想:

從陣列的第乙個元素開始乙個乙個向下查詢,如果有和目標一致的元素,查詢成功;如果到最後乙個元素仍沒有目標元素,則查詢失敗。

<?php

//順序查詢

function seq_search($arr,$n,$k)

}if($i < $n)

else

}?>

<?php  

function my_scandir($dir)

else}}

closedir($handle);

return $files;}}

var_dump(my_scandir('../'));

?>

寫乙個函式,盡可能高效的從乙個標準url中取出檔案的副檔名

<?php

function getext($url)

print(getext(''));

?>

PHP常見演算法

演算法題 1.使用php描述氣泡排序和快速排序演算法,物件可以是乙個陣列 氣泡排序 陣列排序 function bubble sort array return array 快速排序 陣列排序 function quick sort array left arr quick sort left ar...

PHP 常見演算法

arr array 1,43,54,62,21,66,32,78,36,76,39 getpao 就是像冒泡一樣,每次從陣列當中 冒乙個最大的數出來 param type arr 陣列 return type description function getpao arr return arr 冒泡...

PHP五種常見演算法

氣泡排序 created by phpstorm.user maguanya date 2018 1 9 time 下午1 38 氣泡排序 function bubble arr len count arr if len 1 for i 1 i len i return arr 先定義乙個陣列 ar...