*对于算法来说,对于每个小伙伴来说都是比较头疼的,但是,为什么要学习算法?
算法是基础,算法能够提升智力,我想这两点就值得我们花时间去学习了。不要放弃,实在不会,先死记硬背下来,以后慢慢理解,一下是我自己的总结排序算法:
1.冒泡排序(buttle Sort)
1 function buttleSort($arr){ 2 for($i=0; $i<count($arr); $i++){ 3 for($j=0; $j<count($arr)-$i-1; $j++){ 4 if($arr[$j] > $arr[$j+1]){ 5 $temp = $arr[$j]; 6 $arr[$j] = $arr[$j+1]; 7 $arr[$j+1] = $temp; 8 } 9 } 10 } 11 return $arr; 12 }
2.选择排序(select Sort)
1 function selectionSort(){ 2 for($i=0; $i<count($arr)-1; $i++){ 3 $minIndex = $i; 4 for($j=$i+1; $j<count($arr); $j++){ 5 if($arr[minIndex] > $arr[$j]){ 6 $minIndex = $j; 7 } 8 } 9 $temp = $arr[$i]; 10 $arr[$i] = $arr[$minIndex]; 11 $arr[$minIndex] = $temp; 12 } 13 return $arr; 14 }
3.插入排序(insert Sort)
1 function insertionSort($arr){ 2 for($i=1; $i<count($arr); $i++){ 3 $preIndex = $i-1; 4 $current = $arr[$i]; 5 while($preIndex >= 0 && $arr[$preIndex] > $current){ 6 $arr[$preIndex+1] = $arr[$preIndex]; 7 $preIndex--; 8 } 9 $arr[$preIndex+1] = $current; 10 } 11 return $arr; 12 }
待续... ...
1二分查找法:($arr是一个有序数列,返回$num在$arr中的索引值)
1 function dichotomy($arr,$value){ 2 $min = 0; 3 $max = count($arr) - 1; //5 4 5 while(true){ 6 if($value > $arr[$max] || $value<$arr[$min]){ 7 return -1; 8 } 9 $cen = floor(($min+$max)/2); 10 if($value > $arr[$cen]){ 11 $min = $cen; 12 }elseif($value < $arr[$cen]){ 13 $max = $cen; 14 }else{ 15 return $cen; 16 } 17 } 18 }
** 如果有什么问题 请评论中回复,我会即使回复.谢谢。。。。