分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

2018 php 面试

发布时间:2023-09-06 02:16责任编辑:傅花花关键词:暂无标签

排序算法

快速排序

快速排序是十分常用的高效率的算法,其思想是:先选一个标尺,用它把整个队列过一遍筛选,以保证左边的元素都不大于它,其右边都不小于它

function quickSort($arr){ ???//获取数组长度 ???$length = count($arr); ???//判断长度是否需要继续二分比较 ???if($length <= 1){ ???????return $arr ???} ???// 定义基准元素 ???$base = $arr[0]; ???//定义两个空数组,用于存放和基准元素比较后的结果 ???$left = []; ???$right = []; ???//遍历数组 ???for ($i=1;$i<$length;i++){ ???????//和基准元素作比较 ???????if ($arr[i] >$base){ ???????????$right[] = $arr[$i]; ???????}else{ ???????????$left[] = $arr[$i]; ???????} ???????????} ???//然后递归分别处理left和right ???$left = quickSort($left); ???$right = quickSort($right); ???//合并 ???return array_merge($left,[$base],$right) }

冒泡排序

思路:法如其名,就像冒泡一样,每次从数组中冒出一个最大的数。

比如:2,4,1

第一次冒出4:2,1,4

第二次冒出2:1,2,4

function ???bubbleSort($arr){ ??????// 获取数组长度 ???$length = count($arr); ???????// 第一层循环控制冒泡轮次 ???for($i=0; $i < $length-1; $i++) { ????????// 内层循环控制从第0个键值和后一个键值比较,每次冒出一个最大的数 ????????for($k=0; $k < $length-$i; $k++) { ????????????????if($arr[$k] > $arr[$k+1]){ ?????????$tmp = $arr[$k+1]; ?????????$arr[$k+1] = $arr[$k]; ?????????$arr[$k] = $tmp; ???????} ?????} ???} ???return ???$arr; ?}

选择排序

思路:每次选择一个相应的元素,然后将其放到指定的位置

function selectSort($arr){ ???//实现思路 ???//双重循环完成,外层控制轮数,当前的最小值,内层控制比较次数 ???//获取长度 ???$length = count($arr); ???for($i=0;$i<$length-1;$i++){ ???????//假设最小值的位置 ???????$p = $i; ???????//使用假设的最小值和其他值比较,找到当前的最小值 ???????for ($j=$i+1;$j<$length;$j++){ ???????????//$arr[$p] 是已知的当前最小值 ???????????//判断当前循环值和已知最小值的比较,当发下最小的值时记录下键,并进行下一次比较 ???????????if($arr[$p]>$arr[$j]){ ???????????????$p = $j;//比假设的值更小 ???????????} ???????} ???????//通过内部for循环找到了当前最小值的key,并保存在$p中 ???????//判断日光当前$p中的键和假设的最小值的键不一致增将其互换 ???????if ($p !=$i){ ???????????$tmp = $arr[$p]; ???????????$arr[$p] = $arr[$i]; ???????????$arr[$i] = $tmp ???????} ???} ???//返回最终结果 ???return $arr}

2018 php 面试

原文地址:https://www.cnblogs.com/puqunzhu/p/9732750.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved