$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;
}//冒泡優化
//交換方法
function
swap
(array &$arr,$a,$b)
/氣泡排序的優化(如果某一次迴圈的時候沒有發生元素的交換,則整個陣列已經是有序的了)
function
bubblesort1
(array &$arr)}}
}
/**
* [getquick 先使用乙個固定的值,然後和陣列中其他的數值進行對比,比當前小的陣列放到乙個陣列中,比當前大的陣列分當道另乙個陣列中,這兩個陣列重複前面的方法在進行排序,排好序的兩個陣列進行合併]
*@param [type] $arr [description]
*@return [type] [description]
*/function
getquick
($arr)
$num = $arr[0];
$big = array();
$small = array();
foreach($arr
as$v)
$big = getquick($big);
$small = getquick($small);
return array_merge($big, array($num), $small);
}
$arr1 = array(1,2,3,4,5,6,7,8,9,12,23,33,35,56,67,89,99);
/** * [getcheck 假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;否則利用中間位置記錄將表分成前、後兩個子表,如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。重複以上過程,直到找到滿足條件的記錄,使查詢成功,或直到子表不存在為止,此時查詢不成功。]
*@param [type] $arr1 [陣列]
*@param [type] $k [要查詢的]
*@return [type] [description]
*///遞迴
function
bin_sch
($array, $low, $high, $k)elseif ($k
< $array[$mid])else
} return -1;
} //非遞迴
function
getcheck
($arr1,$num)elseif($num
< $arr1[$middle])else
}}
PHP常見演算法
演算法題 1.使用php描述氣泡排序和快速排序演算法,物件可以是乙個陣列 氣泡排序 陣列排序 function bubble sort array return array 快速排序 陣列排序 function quick sort array left arr quick sort left ar...
php常見演算法
基本思想 對需要排序的陣列從後往前 逆序 進行多遍的掃瞄,當發現相鄰的兩個數值的次序與排序要求的規則不一致時,就將這兩個數值進行交換。這樣比較小 大 的數值就將逐漸從後面向前面移動。function mysort arr if issort return arr arr array 3,1,2 va...
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...