【PHP各种排序算法实现代码_php技巧】教程文章相关的互联网学习教程文章

PHP插入排序实现代码_php实例

算法描述: ⒈ 从第一个元素开始,该元素可以认为已经被排序⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置⒌ 将新元素插入到下一位置中⒍ 重复步骤2 代码如下:$arr =array(123,0,5,-1,4,15);function insertSort(&$arr){//先默认第一个下标为0的数是排好的数 for($i=1;$i //确定插...

PHP 各种排序算法实现代码

代码如下:<?php // 功能: PHP实现各种排序算法 // Author: windlike // Datetime: 2007-06-09 // 冒泡排序 function BubbleSort($arr){ $num = count($arr); for($i=1;$i<$num;$i++){ for($j=$num-1;$j>=$i;$j--){ if($arr[$j]<$arr[$j-1]){ $iTemp = $arr[$j-1]; $arr[$j-1] = $arr[$j]; $arr[$j] = $iTemp; } } } return $arr; } // 交换法排序 function ExchangeSort($arr){ $num = count($arr); for($i=0;$i<$num-1;$i++){ for...

PHP 冒泡排序算法的实现代码

基本概念 冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1 个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,...

round robin权重轮循算法php实现代码

先上代码,采用php脚本语言 <?php/* * Copyright (C) FatHong*//* 数据初始化,weight: 权重 */ $hosts[a] = array(weight => 5, current_weight => 0, count => 0); $hosts[b] = array(weight => 3, current_weight => 0, count => 0); $hosts[c] = array(weight => 2, current_weight => 0, count => 0);$result = array();/* 模拟10次 */ for ($i = 0; $i < 10; $i++) {round_robin($hosts, $result); }/* 输出结果 */ print_r(...

php 中奖概率算法实现代码

实现代码: <?php /***php 中奖概率算法**/ function get_zj( $jp ,$glname = gl){$sum = 0;foreach($jp as $k =>$v ){$sum += $v[$glname];}$R = rand(1,$sum);//获取随机数foreach( $jp as $k => $v){if( $R <= $v[$glname] ){return $v;}$R = $R - $v[$glname] ;}}//使用方法 //模拟一个从数据库中读取的 中奖配置 gl 为 中奖的概率 //例如array( gl => 10 , title => 一等奖);的中奖概率 = 10 / (10+20+30+40) $jp = array...

【PHP】堆排序的原理以及实现代码【代码】

本篇文章的主要内容是用PHP实现堆排序,具有一定的参考价值,感兴趣的朋友可以了解一下。1.堆(二叉堆):可以视为一棵完全的二叉树,除了最底层之外,每一层都是满的,这使得堆可以利用数组来表示,每一个结点对应数组中的一个元素2.给出某个结点的下标,可以计算出父结点的和孩子结点的下标; parent(i)=floor(i/2) left(i)=2i right=2i+13.最大堆和最小堆,最大堆:根结点是最大值,最小堆:根结点是最小值4.堆排序就是把最大堆堆顶的最大数取...

PHP对称加密算法(DES/AES)类的实现代码

?对称密钥加密机制即对称密码体系,也称为单钥密码体系和传统密码体系。对称密码体系通常分为两大类,一类是分组密码(如DES、AES算法),另一类是序列密码(如RC4算法)。AES 是一个新的可以用于保护电子数据的加密算法。明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据...

php 二维数组快速排序算法的实现代码

php 二维数组快速排序算法的实现代码 二维数组排序算法与一维数组排序算法基本理论都是一样,都是通过比较把小的值放在左变的数组里,大的值放在右边的数组里在分别递归。实例代码: <?php class Bubble { private function __construct() { } private static function sortt($data) { if (count ( $data ) <= 1) { return $data; } $tem = $data [0][score]; $leftarray = array (); $rightarray = array (); for($i = 1; $i < c...

PHP插入排序实现代码

算法描述: ⒈ 从第一个元素开始,该元素可以认为已经被排序⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置⒌ 将新元素插入到下一位置中⒍ 重复步骤2 代码如下:<?php $arr =array(123,0,5,-1,4,15); function insertSort(&$arr){ //先默认第一个下标为0的数是排好的数 for($i...

微博短链接算法php版本实现代码

思路: 1)将长网址md5生成32位签名串,分为4段, 每段8个字节; 2)对这四段循环处理, 取8个字节, 将他看成16进制串与0x3fffffff(30位1)与操作, 即超过30位的忽略处理; 3)这30位分成6段, 每5位的数字作为字母表的索引取得特定字符, 依次进行获得6位字符串; 4)总的md5串可以获得4个6位串; 取里面的任意一个就可作为这个长url的短url地址; 下面是PHP代码: 代码如下:function shorturl($url=, $prefix=, $suffix=) { $base = array ( a, ...

JS常用算法实现代码

本文的主要目的是帮助大家熟悉熟悉常用的几个算法用JS的实现,具体内容如下(1)数组去重原理:定义一个对象obj,然后把数组元素作为obj的属性名,利用属性名是否重复进行判重var unique = function(arr){let obj = {};let newArr = [];arr.forEach(function(x){if(!obj[x]){ //如果对象中没有该元素对应的属性obj[x] = true;newArr.push(x);}});return newArr; } (2)使用快速排序算法对数组进行排序这里面包括两种效果,一种是...

jsLZ77算法的实现代码_javascript技巧

所以钻研了一段时间的gzip,后来发现还是仅用LZ77 比较容易实现,gzip中的 haffman 压缩部分对于JS来说太难搞了。 代码如下,注释的非常完整,所以就不多说了,有兴趣的可以仔细研究下: LZ77 * { font-size:12px; } body { overflow:auto; background-color:buttonface; } textarea { width:100%; height:240px; overflow:auto; } #btn1 { width:100px; } window.onload = init; function $(s){ return document.getElementB...

JS维吉尼亚密码算法实现代码_javascript技巧

代码如下:var Vigenere = { _strCpr: abcdefghijklmnopqrstuvwxyz_12345 67890.ABCDEFGHIJKLMNOPQRSTUVWXYZ,//可以将此字符串的顺序打乱点,或者添加更多字符 _strKey: function(strK,str){//生成密钥字符串,strK为密钥,str为明文或者密文 var lenStrK = strK.length; var lenStr = str.length; if(lenStrK != lenStr){//如果密钥长度与str不同,则需要生成密钥字符串 if(lenStrK < lenStr){//如果密钥长度比str短,则以不断重复密...

javascript冒泡排序正序和倒序实现代码_javascript技巧【图】

代码如下: var R1=[5,2,10,4,90,88,65,62]; var R2=[5,2,10,4,90,88,65,62]; function BubbleSort1(){ var n=R1.length; for(var i=0;ivar flag=false; for(var j=0;jvar temp; if(R1[j]temp=R1[j+1]; R1[j+1]=R1[j]; R1[j]=temp; } flag=true; } if(!flag) return; } } BubbleSort1(); document.write(R1.join(",")+""); function BubbleSort2() { var n=R2.length; for(var i=0;i{ var flag=false; for(var j=0;j{ var temp; if...

javascript算法学习实现代码_javascript技巧

排序 var len = 100000; var i; var arr = []; for(i=0; i [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]