【DAY.2】PHP数据结构与算法_排序_冒泡排序

来源:互联网 发布:软件项目实施步骤 编辑:程序博客网 时间:2024/06/07 08:29
思路分析:循环逐个对比,从第一个开始,与下一个数字进行对比,若大于则交换位置,每循环一遍将最大的一个排到最后。(依次比较相邻的元素,两两比较,就可以最终将最大(小)的元素调整到最顶端、次顶端、、、)

  1. $arr = array(3,2,5,6,1,8,4,9);
  2. function bubble_sort($arr){
  3. $len=count($arr);
  4. //判断数组是否为空
  5. if($len<=0){
  6. echo '数组不能为空';
  7. exit;
  8. }
  9. for($j=0;$j<$len-1;$j++){
  10. $tmp=false;
  11. //该层循环用来控制每轮,终将最大(小)的元素调整到最末,并设置标志位,发生变动,就置为true,
  12. for($i=0;$i<$len-1-$j;$i++){
  13. $temp=$arr[$i];
  14. if($arr[$i]>$arr[$i+1]){
  15. $tmp=true;
  16. $arr[$i]=$arr[$i+1];
  17. $arr[$i+1]=$temp;
  18. }
  19. }
  20. //如果标志位没有变动,说明,已经排序完毕,结束循环
  21. if($tmp==false){
  22. break;
  23. }
  24. }
  25. return $arr;
  26. }
  27. var_dump(bubble_sort($arr));
0 0
原创粉丝点击