当前位置: 首页 > news >正文

沧州网站建设设计定制苏州现在能正常出入吗

沧州网站建设设计定制,苏州现在能正常出入吗,免费自建网站,国际新闻最新消息今天新闻大事件 中方许多人都说 算法是程序的核心#xff0c;一个程序的好于差,关键是这个程序算法的优劣。作为一个初级phper#xff0c;虽然很少接触到算法方面的东西 。但是对于冒泡排序#xff0c;插入排序#xff0c;选择排序#xff0c;快速排序四种基本算法#xff0c;我想还是要掌握… 许多人都说 算法是程序的核心一个程序的好于差,关键是这个程序算法的优劣。作为一个初级phper虽然很少接触到算法方面的东西 。但是对于冒泡排序插入排序选择排序快速排序四种基本算法我想还是要掌握的。 冒泡排序算法 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列依次比较两个元素如果他们的顺序错误就把他们交换过来。 /*** param $arr* return mixed** 冒泡排序算法的原理如下效率比较低* 1.比较相邻的元素。如果第一个比第二个大就交换他们两个。* 2.对每一对相邻元素做同样的工作从开始第一对到结尾的最后一对。在这一点最后的元素应该会是最大的数。* 3.针对所有的元素重复以上的步骤除了最后一个。* 4.持续每次对越来越少的元素重复上面的步骤直到没有任何一对数字需要比较。*/function bubble($arr){if (!is_array($arr)) {return 参数必须是一个一维数组;}$len count($arr);//获取 长度$len count($arr);//循环比较相邻的两个元素比较交换for ($k 0; $k $len; $k) {for ($j $len - 1; $j $k; $j--) {//比较if ($arr[$j] $arr[$j - 1]) {//交换$temp $arr[$j];$arr[$j] $arr[$j - 1];$arr[$j - 1] $temp;}}}return $arr;}// 先定义一个数组 $arr [9, 2, 4, 1, 7, 3, 5, 8]; $fun bubble($arr); var_dump($fun); 插入排序算法 插入排序的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列对于未排序数据在一排序序列中从后向前扫描找到相应的位置并插入。 /*** param $arr* return mixed** 插入排序算法的原理如下* 1.从第一个元素开始该元素可以认为已经被排序。* 2.取出下一个元素在已经排序的元素序列中从后向前扫描。* 3.如果该元素已排序大于新元素将该元素移到下一个位置。* 4.重复步骤 ③直到找打已排序的元素小于或者等于新元素的位置。* 5.将新元素插入到该位置中。* 6.重复步骤2*/ function insert_sort($arr){$lencount($arr);for($i1; $i$len; $i) {//获得当前需要比较的元素值。$tmp $arr[$i];//内层循环控制 比较 并 插入for($j$i-1; $j0; $j--) {//$arr[$i];//需要插入的元素; $arr[$j];//需要比较的元素if($tmp $arr[$j]) {//发现插入的元素要小交换位置//将后边的元素与前面的元素互换$arr[$j1] $arr[$j];//将前面的数设置为 当前需要交换的数$arr[$j] $tmp;} else {//如果碰到不需要移动的元素//由于是已经排序好是数组则前面的就不需要再次比较了。break;}}}//将这个元素 插入到已经排序好的序列内。//返回return $arr;}$arrarray(1,43,54,62,21,66,32,78,36,76,39); print_r(insert_sort($arr)); 选择排序算法 选择排序是一种简单直观的排序算法。它的工作原理如下首先是在末排序序列中找到最小元素存放到排序序列的起始位置然后再从 剩余未排序元素中继续寻找最小元素。然后放到排序序列末尾。以此类推直到所有元素均排序完成。 /*** param $arr* return mixed** 选择排序算法的原理如下比冒泡效率高* 1.外层决定循环层数* 2.选择排序就是默认当前值为最小值记录下标然后进行循环比较记录最小最大值的下标最后交换两者的值。这样第一个值就是最小最大值。* 3.然后依次循环下去。最后得到的就是有序的数组*/ function select_sort($arr) {//$i 当前最小值的位置 需要参与比较的元素for($i0, $lencount($arr); $i$len-1; $i) {//先假设最小的值的位置$p $i;//$j 当前都需要和哪些元素比较$i 后边的。for($j$i1; $j$len; $j) {//$arr[$p] 是 当前已知的最小值if($arr[$p] $arr[$j]) {//比较发现更小的,记录下最小值的位置并且在下次比较时应该采用已知的最小值进行比较。$p $j;}}//已经确定了当前的最小值的位置保存到$p中。//如果发现 最小值的位置与当前假设的位置$i不同则位置互换即可if($p ! $i) {$tmp $arr[$p];$arr[$p] $arr[$i];$arr[$i] $tmp;}}//返回最终结果return $arr; }$arrarray(1,43,54,62,21,66,32,78,36,76,39); print_r(select_sort($arr)); 快速排序算法 快速排序是由东尼·霍尔发展的一种排序算法。在平均状况下 排序n个项目要On log n次比较。 /*** param $arr* return array** 快速排序算法原理如下* 1.通过设置一个初始中间值来将需要排序的数组分成3部分小于中间值的左边中间值大于中间值的右边* 2.继续递归用相同的方式来排序左边和右边* 3.最后合并数组*/function quick_sort($arr) { //先判断是否需要继续进行 $length count($arr); if($length 1) { return $arr; } //如果没有返回说明数组内的元素个数 多余1个需要排序 //选择一个标尺 //选择第一个元素 $base_num $arr[0]; //遍历 除了标尺外的所有元素按照大小关系放入两个数组内 //初始化两个数组 $left_array array();//小于标尺的 $right_array array();//大于标尺的 for($i1; $i$length; $i) { if($base_num $arr[$i]) { //放入左边数组 $left_array[] $arr[$i]; } else { //放入右边 $right_array[] $arr[$i]; } } //再分别对 左边 和 右边的数组进行相同的排序处理方式 //递归调用这个函数,并记录结果 $left_array quick_sort($left_array); $right_array quick_sort($right_array); //合并左边 标尺 右边 return array_merge($left_array, array($base_num), $right_array); } $arr array(1,98,5,34,23,87,54,23,12,0,456,123,45); $res quick_sort($arr); print_r($res);die;
http://www.sadfv.cn/news/312278/

相关文章:

  • 昆明网站制作方案义乌手工活外发加工网160网
  • 枝江企业网站小制作作文400字
  • 网站怎样做百度推广计划深圳建站公司收费
  • 自适应网站开发语言郑州网站策划
  • 在线做任务的网站有哪些兼职设计师平台
  • 做图网站有哪些东西吗wordpress男人福利模板
  • 江苏嘉隆工程建设有限公司网站动漫制作专业用手提电脑
  • 巴彦淖尔网站制作怎么做原创动漫视频网站
  • 网站建设捌金手指花总十一石家庄网站建设系统
  • 免费试用平台网站源码网站建设手机端管网
  • 网站建设论文百度云盘专业的东莞网站推广
  • 延边北京网站建设dedecms资源下载模板
  • 教育类网站框架wordpress 获取用户邮箱
  • 单页网站搭建微信公众号网站开发模板
  • 网站建设模型软件太原关键词排名推广
  • 推广网络营销外包公司天津网络优化招聘
  • 个人购物网站需要备案吗上海拍牌网址
  • 营销型企业网站怎么制作网站技术团队
  • 个人不良信息举报网站wordpress换主题模板
  • 成都市网站设上海做网络推广
  • 东莞网站建设-拥有多年专业商城网站建设系统
  • 华米手表官方网站青海网站建设
  • 网站开发需要学习什么技术科技与生活
  • 电器企业网站建站中小企业网站积木式搭建
  • 万年县建设银行网站拼音全称网页设计制作要求
  • 个人域名备案完成了 可以改网站内容吗富阳网站建设洛洛科技
  • 千博企业网站系统平面设计发展前景
  • seo排名优化appzac seo博客
  • 什么查网站是否降权商丘哪里有网站建设
  • 西安网站关键词优化费用模板网站如何快速交付给客户