【DAY.3】PHP數據結構與算法_排序_選擇排序

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/phpbook/article/details/53140690
思路分析:每次從待排序列中選出最大、次大的元素,與冒泡排序相比,每次循環只交換一次位置,節省資源。

  1. function select_sort($array){
  2. $len=count($array);
  3. if($len<=0){
  4. echo '數組不能爲空';
  5. return;
  6. }
  7. //兩層循環完成排序,外層控制輪數,內層進行便利比較,
  8. for($i=$len-1;$i>0;$i--){
  9. $tmp = 0;
  10. //內層循環從第一個開始,經過循環比對,獲取最大值的key,將當前最大值與末尾元素進行對換
  11. for($j= 0;$j <= $i;$j++){
  12. if($array[$tmp] < $array[$j]){
  13. $tmp = $j;
  14. }
  15. }
  16. //如果最大值就是末尾元素,不進行替換
  17. if($i!=$tmp){
  18. $tmpval = $array[$tmp];
  19. $array[$tmp] = $array[$i];
  20. $array[$i] = $tmpval;
  21. }
  22. }
  23. return $array;
  24. }
  25. echo "<pre>";
  26. print_r(select_sort($arr));
  27. echo "</pre>";
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章