【php算法实例分享_PHP】教程文章相关的互联网学习教程文章

php快速排序quicksort的用法实例详解

这篇文章主要介绍了PHP快速排序quicksort实现方法,结合实例形式分析了快速排序的原理及php实现快速排序的相关操作技巧,需要的朋友可以参考下本文实例讲述了PHP快速排序quicksort。分享给大家供大家参考,具体如下:quicksort在快速排序算法中,使用了分治策略。首先把序列分成两个子序列,递归地对子序列进行排序,直到整个序列排序结束。(即一分为二的思想)步骤如下:在序列中选择一个关键元素做为轴;对序列进行重新排序,将比...

php几种排序算法实例详解

四种排序算法的PHP实现:1) 插入排序(Insertion Sort)的基本思想是: 每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。2) 选择排序(Selection Sort)的基本思想是: 每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。3) 冒泡排序的基本思想是: 两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,...

php冒泡排序、快速排序、快速查找、二维数组去重实例分享

一、冒泡排序//冒泡排序 function bubble_sort($array) {$count=count($array);if($count <= 0){return false;}for($i=0;$i<$count;$i++){for($j=0;$j<$count-$i-1;$j++){if( $array[$j] > $array[$j+1] ){$temp=$array[$j];$array[$j]=$array[$j+1];$array[$j+1]=$temp;}}}return $array; }二、快速排序//快排 function quick_sort($array) {$count=count($array);if($count <= 1){return $array;}$key=$array[0];$array_left=arr...

一组PHP可逆加密解密算法实例代码

对于大部分密码加密,我们可以采用md5、sha1等方法。可以有效防止数据泄露,但是这些方法仅适用于无需还原的数据加密。对于需要还原的信息,则需要采用可逆的加密解密算法。下面一组PHP函数是实现此加密解密的方法:加密算法如下:function encrypt($data, $key) {$key = md5($key);$x = 0;$len = strlen($data);$l = strlen($key);for ($i = 0; $i < $len; $i++){if ($x == $l) {$x = 0;}$char .= $key{$x};$x++;}for ($i = 0; ...

php结合md5的加密解密算法实例

本文实例讲述了php结合md5的加密解密算法。分享给大家供大家参考,具体如下:<?php /* * Created on 2016-9-30 * */ function encrypt($data, $key) {$key = md5($key);$x = 0;$len = strlen($data);$l = strlen($key);for ($i = 0; $i < $len; $i++){if ($x == $l){$x = 0;}$char .= $key{$x};$x++;}for ($i = 0; $i < $len; $i++){$str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);}return base64_encode($str); } functio...

详解PHP归并排序的实现_php实例

归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表。归并排序的一个缺点是它需要存储器有另一个大小等于数据项数目的数组。如果初始数组几乎占满整个存储器,那么归并排序将不能工作,但是如果有足够的空间,归并排序会是一个很好的选择。假设待排序的序列:4 3 7 9 2 8 6先说思路,归并排序的中心思想是将两个已经排序好的序列,合并成一个排序的序列。上面的序列可以分成:4 3 7 9 和 2 8 6这两个序列,然...

php四大基本排序算法实例

PHP四大基本排序算法包括:冒泡排序法,快速排序法,选择排序法,插入排序法。  1. 冒泡排序  思路分析:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即,每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。  代码实现:$arr=array(1,43,54,62,21,66,32,78,36,76,39); function bubbleSort($arr) { $len=count($arr);//该层循...

微信随机生成红包金额算法php版_php实例

最近在研究发红包的功能,于是写了个红包的生成算法。红包生成算法的需求 预先生成所有的红包还是一个请求随机生成一个红包 简单来说,就是把一个大整数m分解(直接以“分为单位,如1元即100)分解成n个小整数的过程,小整数的范围是[min, max]。 最简单的思路,先保底,每个小红包保证有min,然后每个请求都随机生成一个0到(max-min)范围的整数,再加上min就是红包的钱数。 这个算法虽然简单,但是有一个弊端:最后生成的红包可能...

基于PHP微信红包的算法探讨_php实例

突发奇想给校友微信群发了红包,我设定红包总额为10元,支持28个人随机领取。 于是一个有趣的结果出现了: A 领取了 0.26元 B 领取了 0.29元 C 领取了 0.02元 D 领取了 0.56元 E 领取了 0.64元 …… 微信是采用什么样的算法做到的?简单百度了下,目前尚未有官方的说明,仅仅在知乎里有一个较为热门的讨论,链接戳这里,不过他们讨论的太过于深入,有掉坑之嫌。 我按照自己的逻辑尝试了下,这个算法需要满足以下几点要求: 1、每个人...

PHP面试常用算法(推荐)_php实例

一、冒泡排序 基本思想: 对需要排序的数组从后往前(逆序)进行多遍的扫描,当发现相邻的两个数值的次序与排序要求的规则不一致时,就将这两个数值进行交换。这样比较小(大)的数值就将逐渐从后面向前面移动。 //冒泡排序 <?phpfunction mysort($arr){for($i = 0; $i < count($arr); $i++){$isSort = false;for ($j=0; $j< count($arr) - $i - 1; $j++) {if($arr[$j] < $arr[$j+1]){$isSort = true;$temp = $arr[$j];$arr[$j] = ...

微信红包随机生成算法php版_php实例

想了想,自己写写php版的微信红包随机生成算法,能不能实现类似的功能(其实也不敢说是算法)。 // $bonus_total 红包总金额 // $bonus_count 红包个数 // $bonus_type 红包类型 1=拼手气红包 0=普通红包 function randBonus($bonus_total=0, $bonus_count=3, $bonus_type=1){$bonus_items = array(); // 将要瓜分的结果$bonus_balance = $bonus_total; // 每次分完之后的余额$bonus_avg = number_format($bonus_total/$bonus_c...

PHP实现经典算法上php程序设计经典300例php递归算法经典实例php经典面试

前言下面的是通过PHP实现经典算法,并计算了耗时,可以通过耗时对比这几种算法的复杂度。插入排序冒泡排序选择排序并归排序快速排序CODE$arr = [];for ($i = 0; $i 5000; $i++) {$arr[] = rand(1, 10000); }//1 插入排序functioninsertionSort($arr) {for ($i = 1; $i $arr); $i++) {$tmp = $arr[$i]; //设置监视哨$key = $i - 1; //设置开始查找的位置while ($key >= 0 && $tmp $arr[$key]) { // 监视哨的值比查找的值小 并且 没有...

php数组冒泡排序算法实例二维数组算法后缀数组倍增算法数组去重算

本文实例讲述了php数组冒泡排序算法。分享给大家供大家参考,具体如下:<?php /*@冒泡排序算法 */ $array=array(5,45,22,11,32,28,35,56,17,21,92); $len=count($array);//计算数组长度 for($i=0;$i<$len-1;$i++){//需要比较$len-1轮,每一轮需要比较$len-1次for($j=0;$j<$len-1;$j++){//需要比较$len-1次,因为循环到最后一个数时,后面没有数可以比较了,所以循环到倒数第二个数正好$k=$j+1;//得到当前数的后一个数的下标,我们依...

实例学习php插入排序的实现方法

/** * 插入排序 * @param Array $a 无序集合 * @return Array 有序集合 */function insertSort($a) { $temp; $i; $j; $size_a = count($a); # 从第二个元素开始 for ($i = 1; $i if ($a[$i] $j = $i; # 保存当前元素的位置 $temp = $a[$i]; # 当前元素的值 # 比较左边的元素,如果找到比自己更小的,向右移动元素,否则插入元素到当前位置 while($j>0 && $temp$a[$j] = $a[$j-1];$j--; } # 插入元素 $a[$j] = $t...

php算法实例分享

只打印0具体个数由输入的参数n决定如n=5就打印00000$n = $_GET['n']; for ($i=0; $i echo "0"; }?> 打印一行 0101010101010101010101具体个数由输入的参数n决定如test.php?n=3打印010$n = $_GET['n']; for ($i=0; $i if ($i % 2 ==0) { echo "0"; } else{ echo "1"; } }?> 实现1 00 111 0000 11111for if 实现 for ($i = 0; $i for ($j = 0; $j if ($i % 2 == 0) { echo '0'; } else { ...

实例 - 相关标签