写一个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是一个维数组。(提示:不能使用系统已有函数,另外请仔细回忆以前学习过的 基础知识)

Posted 暖心i

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写一个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是一个维数组。(提示:不能使用系统已有函数,另外请仔细回忆以前学习过的 基础知识)相关的知识,希望对你有一定的参考价值。

//冒泡排序(数组排序)
function bubble_sort($array)
{
    $count = count($array);
    if ($count <= 0) return false;

    for($i=0; $i<$count; $i++){
        for($j=$count-1; $j>$i; $j--){
            if ($array[$j] < $array[$j-1]){
                $tmp = $array[$j];
                $array[$j] = $array[$j-1];
                $array[$j-1] = $tmp;
            }
        }
    }
    return $array;
}

//快速排序(数组排序)
function quicksort($array) {
    if (count($array) <= 1) return $array;

    $key = $array[0];
    $left_arr = array();
    $right_arr = array();

    for ($i=1; $i<count($array); $i++){
        if ($array[$i] <= $key)
            $left_arr[] = $array[$i];
        else
            $right_arr[] = $array[$i];
    }

    $left_arr = quicksort($left_arr);
    $right_arr = quicksort($right_arr);

    return array_merge($left_arr, array($key), $right_arr);
}

.写一个遍历指定目录下所有子目录和子文件的函数(提示:可以使用递归的方法)

function dir_all ( $path ) {
        $handler = opendir($path);
        while (false!==($tmp = readdir($handler))) { 
                if(is_dir( "$path/$tmp" )) {
                        if ($tmp=="." | $tmp=="..") continue;
                                echo $tmp."<br>/n";
                                dir_all ("$path/$tmp");
                } else {
                        echo $tmp ."<br>/n";
                }
        }
}

写出匹配邮箱地址和URL的两个正则表达式。类似下面的:

 

//邮箱地址:[email protected]
URL地址:http://www.example.com.cn/user_profile.php?uid=100 
(提示:使用标准的正则表达式,就是PHP中preg_* 类的正则处理函数能够解析的正则)

//邮箱://w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*/
URL:/^http:////[/w]+/.[/w]+[/S]*/

 

 



以上是关于写一个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是一个维数组。(提示:不能使用系统已有函数,另外请仔细回忆以前学习过的 基础知识)的主要内容,如果未能解决你的问题,请参考以下文章

面试官:写一个冒泡排序和快速排序吧

快速排序算法

用Turtle库写一个冒泡排序动画演示

算法入门五——快速排序算法(中)

快速排序

学习算法 -- 马桶排序冒泡排序和快速排序