php中有四大算法:

这种算法现在虽然用的不是太多,但面试的时候,很多人都会去问

什么叫冒泡排序法?

怎么写,写一段吧

这就是冒泡排序法,按照从大到小或从小到大的顺序进行排列。

冒泡排序法:

1、首先要知道循环的次数

2、双层循环

3、是从大到小还是从小到大 (决定压入数组的顺序)

每当两个相邻的数进行比较后,发现他们的排序与排序规则不一样的时候,

则两个数进行位置互换。

//lt 从大到小

//gt从小到大

1、冒泡排序法$arr=array(3,8,4,6,5,7,9);

$arr=px($arr,"lt");

function px($arr,$dig="gt"){

$len=sizeof($arr);

for($i=1;$i

for($j=0;$j

if($dig=="gt"){

if($arr[$j]>$arr[$j+1]){

$tmp=$arr[$j+1];

$arr[$j+1]=$arr[$j];

$arr[$j]=$tmp;

}

}else if($dig=="lt"){

if($arr[$j]

$tmp=$arr[$j+1];

$arr[$j+1]=$arr[$j];

$arr[$j]=$tmp;

}

}

}

}

return $arr;

}

echo "

";

print_r($arr);

echo "

";

php冒泡排序有多种写法:

第一种:function arrSort($arr) {

for ($i = 1, $len = count($arr); $i

for ($j = 0; $j

if ($arr[$j]

$temp = $arr[$j + 1];

$arr[$j + 1] = $arr[$j];

$arr[$j] = $temp;

}

}

}

return $arr;

}

2018-11-24

第二种:function arrSort($arr) {

$num = 0;

for ($i = 1; $i

for ($j = 0; $j

if ($arr[$j] > $arr[$j + 1]) {

$temp = $arr[$j];

$arr[$j] = $arr[$j + 1];

$arr[$j + 1] = $temp;

}

$num++;

}

}

echo $num;

return $arr;

}

区别在于声明变量处,第一种方法声明了一个length

这种冒泡是精简的算法,最少的排序次数

php快速排序分割两部分,php四大算法|冒泡排序|快速排序|二分查找相关推荐

  1. 冒泡和快速排序的时间复杂度_java 八大排序算法 冒泡排序 快速排序 堆排序 归并排序 等...

    八大排序算法 一.直接插入 1.基本思路 在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的.如此反复循环 ...

  2. 算法前戏 递归 二分查找 列表查找

    一.递归 概念: 函数直接或者间接的调用自身算法的过程,则该函数称为递归函数.在计算机编写程序中,递归算法对解决一大类问题是十分有效的. 特点: ①递归就是在过程或者函数里调用自身. ②在使用递归策略 ...

  3. LeetCode4寻找两个有序数组的中位数(二分查找+分治)

    目录 1.题目 2.分析 3.代码 二分查找:绝大多数二分查找问题利用的是单调性,也有一些例外)或者题目本身蕴含的可以逐渐缩小问题规模的特性解决问题.时间复杂度log级. 分治法的设计思想是:将一个难 ...

  4. LeetCode 4. 寻找两个有序数组的中位数(二分查找,难)

    文章目录 1. 题目 2. 解题 2.1 合并数组 2.2 优化2.1解法,双指针 2.3 二分法(找第k个数) 2.4 切分法 1. 题目 给定两个大小为 m 和 n 的有序数组 nums1 和 n ...

  5. java 二分搜索获得大于目标数的第一位_程序员数据结构算法编程,二分查找搜索算法的原理与应用介绍!...

    本文来讲一种搜索算法,即二分搜索算法,通常在面试时也会被问到. 我们先来看一个例子,在图书馆通常是根据查到的编号去找书,可以在书架上按顺序一本本地查找,也可以找到一本书不符合预期时,再跳过一大部分书再 ...

  6. 大前端算法入门之二分查找

    现如今面试大厂的前端岗位对于应聘者的算法技巧要求越来越高,现在的前端已经不仅仅是制作页面就能够交差的,所以掌握算法技巧是很重要的,下面小千就来给大家介绍一个二分查找算法. 二分查找 所谓的算法都不是直 ...

  7. 算法(一):二分查找法

    算法基础: 一.大O表示法: 指示算法的速度有多快,用于指出随数量的增大,算法的所需步骤增加的速度,常见的大O运行时间(时间复杂度): O(1)表示常数阶时间复杂度 O(log n),也叫对数时间复杂 ...

  8. 常用十大算法 非递归二分查找、分治法、动态规划、贪心算法、回溯算法(骑士周游为例)、KMP、最小生成树算法:Prim、Kruskal、最短路径算法:Dijkstra、Floyd。

    十大算法 学完数据结构该学什么?当然是来巩固算法,下面介绍了十中比较常用的算法,希望能帮到大家. 包括:非递归二分查找.分治法.动态规划.贪心算法.回溯算法(骑士周游为例).KMP.最小生成树算法:P ...

  9. 算法基础——关于二分查找的那些事

    文章目录 二分查找的思路 算法复杂度 几种不同的二分查找 1. 普通二分 2. 二分答案 3. 小数二分 二分查找的思路 二分查找也称为折半查找(binary search),适用于顺序存储结构的线性 ...

最新文章

  1. 计算机图形学直线扫描转论文,计算机图形学实验报告-实验1直线段扫描转换.doc...
  2. 改变mysql数据库用户的权限
  3. 步步为营 .NET 代码重构学习笔记 十一
  4. 开源界的 5 大开源许可协议
  5. ibatis mysql分页查询语句_简单实现ibatis的物理分页
  6. 现代中国第一位数学博士是谁?
  7. MessagePack简介及使用:一种有效的二进制序列化格式
  8. 各大搜索引擎提交地址
  9. 《程序是怎样跑起来的》读书笔记
  10. 从一个小场景学会使用 apply方法
  11. Spring Boot
  12. 微师电脑客户端 附使用教程
  13. 360 度测试:Kafka 会丢数据么?其高可用是否满足需求?
  14. 博客备份系统之一:PDF,Word,TXT文件操作类
  15. windows录屏_录制视频的软件有哪些?三款软件轻松应对录屏_
  16. 汇正财经骗局?科创50大涨
  17. Math 的 ceil、floor、round方法详解及示例
  18. IllegalArgumentException 异常
  19. idea springboot mybaits扫描不到第三方jar中的mapper
  20. 3.Sunday算法的一个小优化

热门文章

  1. Numpy常用方法和使用技巧
  2. 苹果电脑获取Android Studio的发布版SHA1和开发版SHA1
  3. js选中文字兼容性解决
  4. C#参考:Linq 概述
  5. PHP字符编码绕过漏洞总结
  6. Windows API-GDI入门基础知识详解(1)
  7. Visual Studio 2010 中编写C代码的一些常见问题
  8. [转载] python tuple类型如何索引_Python基础数据类型——tuple浅析
  9. [转载] python 运算符重载有什么用_Python运算符重载用法实例分析
  10. [转载] python里字典的用法_python中字典(Dictionary)用法实例详解