zoukankan      html  css  js  c++  java
  • PHP 冒泡、选择、插入排序

    什么鬼面试都要问,心累

    1、冒泡

    相邻两个两两比较

    $test = [300, 242334, 234, 123, 333, 456, 23, 54234, 99, 898888,100, 111];
    
    function bubble($test)
    {
        $len = count($test);
        for ($i= 0; $i < $len - 1; $i++) { 
            for ($j = 0; $j < $len - 1 - $i; $j++) { 
                if ($test[$j] > $test[$j + 1]) {
                    list($test[$j], $test[$j + 1]) = [$test[$j + 1], $test[$j]];
                }
            }
        }
        return $test;
    }
    

    2、选择

    从小到大:认为外层循环的那个值就是最小的,最要内层循环的值比我大就跟我换

    function select($test)
    {
        $len = count($test);
        for ($i=0; $i < $len - 1; $i++) { 
            for ($j= $i + 1; $j < $len; $j++) { 
                if ($test[$i] > $test[$j]) {
                    list($test[$i], $test[$j]) = [$test[$j], $test[$i]];
                }
            }
        }
        return $test;
    }
    

    3、插入

    // 取出数组的第二个开始 我认为我前面已经排好序了,都比我小,
    // 我先跟我前面的值比一下,如果我比他还小,我跟他换一下,我再去跟他前面的比一下,
    // 直到我不比我前面的小了,说明前面的都比我小,后面的都比我大,我的位置就确定了
    
    function insert($test)
    {
        $len = count($test);
    
        for ($i = 1; $i < $len; $i++) { 
            $tmp = $test[$i];
            for ($j = $i -1 ; $j >= 0; $j--) { 
                if ($tmp < $test[$j]) {
                    $test[$j + 1] = $test[$j];
                    $test[$j] = $tmp;
                }
            }
        }
    
        return $test;
    }
    

      

    每天都是不想努力的一天....
  • 相关阅读:
    mysql递归层次查询
    mybatis+spring事务
    浅谈数据库表的分割技术(水平、垂直、库表散列)(引用)
    高并发的常见思维
    jee websocket搭建总结
    hibernate 多表查询
    jsp作为服务端,ajax请求回应
    排序(2)--希尔,快速,归并
    排序(1)--冒泡,插入,选择
    Java反射基础
  • 原文地址:https://www.cnblogs.com/Theia/p/14603952.html
Copyright © 2011-2022 走看看