练习

来源:互联网 发布:淘宝历史价格查询插件 编辑:程序博客网 时间:2024/05/13 06:27
function quickSortRecursion(&$arr, $begin, $end){    if ($begin < $end) {        $left = $begin;        $right = $end;        $temp = $arr[$begin];        // $temp为基准元素        // 把小于$temp的元素放到$temp左边,大于它的放在右边        while ($left < $right) {            while ($left < $right && $arr[$right] >= $temp) $right--;            if ($left < $right) {                $arr[$left++] = $arr[$right];            }            while ($left < $right && $arr[$left] <= $temp) $left++;            if ($left < $right) {                $arr[$right--] = $arr[$left];            }        }        $arr[$left] = $temp;        quickSortRecursion($arr, $begin, $left - 1);        quickSortRecursion($arr, $left + 1, $end);    }    return $arr;}function quickSort($arr){    $len = count($arr);    quickSortRecursion($arr, 0, $len - 1);    return $arr;}$arr = [3, 1, 13, 5, 7, 11, 2, 4, 14, 9, 15, 6, 12, 10, 8];print_r(quickSort($arr));exit;//insertSort$arr = array(3, 2, 1);for ($i = 0; $i < count($arr) - 1; $i++) {    $k = $i;    for ($j = $i + 1; $j < count($arr); $j++) {        $k = ($arr[$k] > $arr[$j]) ? $j : $k;    }    $tmp = $arr[$i];    $arr[$i] = $arr[$k];    $arr[$k] = $tmp;}print_r($arr);exit;//bubbleSort$arr = array(3, 2, 1);$flag = 0;for ($i = count($arr) - 1; $i > 0; $i--) {    for ($j = 1; $j <= $i; $j++) {        if ($arr[$j - 1] > $arr[$j]) {            $flag = 1;            $tmp = $arr[$j - 1];            $arr[$j - 1] = $arr[$j];            $arr[$j] = $tmp;        }        if ($flag == 0) {  //如果本次没有发生交换的话就跳到下一次            continue;        }    }}print_r($arr);exit;//每次由队列的头部开始删除元素//1 开始//当数到3的时候,就删除第3个元素,然后从第四个开始重新从1开始//n为整个数组 m相隔几个删除一个function ysf($n, $m){    $arr = range(1, $n);    $i = 0;    while ($m <= count($arr)) {        ++$i;        $surive = array_shift($arr); //每一次都要删除一个元素        if ($i % $m <> 0) {            array_push($arr, $surive);        } elseif ($i > count($surive)) { //删除了要重新从1开始数了。            $i = 0;        }    }    return $arr;}var_dump(ysf(7, 3));exit;
原创粉丝点击