【一个算法示例:PHP实现开心消消乐】教程文章相关的互联网学习教程文章

JS实现的计数排序与基数排序算法示例

本文实例讲述了JS实现的计数排序与基数排序算法。分享给大家供大家参考,具体如下: 计数排序 计数排序就是简单的桶排序,一个桶代表数组中一个数出现的个数,所以需要一个和数组数字范围一样大的辅助数组,一般用在范围小于100的排序,时间复杂度为O(n),空间复杂度为数组的数字范围。 /*** 范围在 start - end 之间的排序* 计数排序需要辅助数组,该辅助数组的长度是待排序数组的范围,所以一般用作范围小于100的排序*/ function...

JavaScript实现树的遍历算法示例【广度优先与深度优先】【图】

本文实例讲述了JavaScript实现树的遍历算法。分享给大家供大家参考,具体如下: <script type="text/javascript"> var t = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]; //下面这段深度优先搜索方法出自Aimingoo的【JavaScript语言精髓与编程实践】 var deepView = function(aTree,iNode) {(iNode in aTree) && (document.write(aTree[iNode]+<br/>),arguments.callee(aTree,2*iNode+1),arguments.callee(aTree,2*iNode+...

JS实现的全排列组合算法示例【图】

本文实例讲述了JS实现的全排列组合算法。分享给大家供大家参考,具体如下: 全排列组合算法,例如a,b,c,d进行全排列组合,则组合结果为:a,b,ab,c,ac,bc,abc,d,ad,bd,abd,cd,acd,bcd,abcd。实现思路:从数据源拿出一个元素,依次与已存在的组合数据进行组合,循环上面操作直到数据源没有数据为止。 例子: 数据源a,b,c 1.拿出a,组合数据group为空,插入数据源a元素到组合数据group,此时group=[a] 2.拿出b,组合数据group拿出a,a...

JS实现的随机排序功能算法示例

本文实例讲述了JS实现的随机排序功能算法。分享给大家供大家参考,具体如下: 使用JS编写一个方法 让数组中的元素每次刷新随机排列 方法一: var arr =[1,2,3,4]; var t; for(var i = 0;i < arr.length; i++){var rand = parseInt(Math.random()*arr.length);t = arr[rand];arr[rand] =arr[i];arr[i] = t; } console.log(arr);方法二: var arr =[1,2,3,4]; var brr = []; var num = arr.length; for (var i = 0; i < num; i++){va...

基于JavaScript实现的顺序查找算法示例【图】

本文实例讲述了基于JavaScript实现的顺序查找算法。分享给大家供大家参考,具体如下: 对于查找数据来说,最简单的方法就是从列表的第一个元素开始对列表元素逐个进行判断,直到找到了想要的结果。这个方法叫做顺序查找,有时候也被叫做线性查找。它属于暴力查找技巧的一种。 顺序查找实现起来非常简单,代码如下: function generalSearch(arr,data){//普通的顺序查找,就是遍历一遍看是否找到for(var i=0;i<arr.length;i++){if(a...

基于JavaScript实现的折半查找算法示例【图】

本文实例讲述了基于JavaScript实现的折半查找算法。分享给大家供大家参考,具体如下: 折半查找也叫做二分查找,是针对有序表的一种查找方式,其思想如下: 将数组的第一个位置设为下边界; 将数组的最后一个位置设为上边界; 如果下边界等于或小于上边界,则做如下操作: 将中点设置为上边界加下边界之和除以二; 如果中点的元素小于查询的值,则将下边界设置为中点元素所在下标加1; 如果中点的元素大于查询的值,则将上...

JavaScript数据结构之二叉树的遍历算法示例

本文实例讲述了JavaScript数据结构之二叉树的遍历算法。分享给大家供大家参考,具体如下: 三种遍历的代码: function inOrder(node){//中序遍历if(node!=null){inOrder(node.left);document.write(node.show()+" ");inOrder(node.right);} } function preOrder(node){//先序遍历if(node!=null){document.write(node.show()+" ");preOrder(node.left);preOrder(node.right);} } function postOrder(node){//后序遍历if(node!=null)...

JavaScript数据结构之二叉树的查找算法示例

本文实例讲述了JavaScript数据结构之二叉树的查找算法。分享给大家供大家参考,具体如下: 前面文章介绍了二叉树的遍历,现在谈谈在二叉树中进行查找。对二叉查找树来说,一般有以下三类查找:最大值,最小值和给定值。 查找最小值就是遍历左子树,直到找到最后一个结点,这是因为在二叉查找树中较小的值总是在左子节点上的。 代码如下: function getMin(){//查找最小值var current=this.root;//指向根节点while(current.left!=nu...

JavaScript数据结构之二叉树的删除算法示例

本文实例讲述了JavaScript数据结构之二叉树的删除算法。分享给大家供大家参考,具体如下: 从二叉查找树上删除节点的操作复杂程度取决于删除哪个节点。如果删除没有子节点的节点就非常简单,如果节点只有一个子节点,不管是左子节点还是右子节点,就变得稍微有点复杂,如果节点包含两个子节点就最复杂。 如果待删除节点是叶子节点,那么只需要将从父节点指向它的链接指向null。 如果待删除节点只包含一个子节点,那么原本指向它的节...

JavaScript数据结构之二叉树的计数算法示例

本文实例讲述了JavaScript数据结构之二叉树的计数算法。分享给大家供大家参考,具体如下: 二叉查找树的一个用途就是记录一组数据集中数据出现的次数。比如记录成绩的分布,给定一组考试成绩,如果未出现则加入树,如果已经出现则数量加一。 所以要修改Node对象,添加记录成绩出现次数加一,代码如下: function Node(data,left,right){this.data=data;this.left=left;this.right=right;this.show=show;this.count=1;//记录出现的次...

JS前端加密算法示例

本文实例讲述了JS前端加密算法。分享给大家供大家参考,具体如下: 解密操作对服务器性能颇有消耗。寻思着能不能在前端完成。于是找到了crypto-js。 crypto-js的github地址: https://github.com/brix/crypto-js crypto-js支持各类主流算法。弄个简单点的DES加密。 function decryptByDES(ciphertext, key) {var keyHex = CryptoJS.enc.Utf8.parse(key);var decrypted = CryptoJS.DES.decrypt({ciphertext: CryptoJS.enc.Base64.pa...

php实现的生成排列算法示例

本文实例讲述了php实现的生成排列算法。分享给大家供大家参考,具体如下: <?php function perm($s, $n, $index) {if($n == 0){return ;}else{$nIndex = count($index); //可用的字符串下标$res = array();foreach($index as $i => $v){$tmp = $index;unset($tmp[$i]); //去掉当前的前缀/* 调试信息,便于理解echo "len $n , cur $i , index:\n";var_dump($tmp);*/$ret = perm($s, $n-1, $tmp); //递归得到稍短的排列if($ret ...

一个JS的日期格式化算法示例

代码如下:function dateFormat(date, format) { var o = { "M+": date.getMonth() + 1, //month "d+": date.getDate(), //day "h+": date.getHours(), //hour "m+": date.getMinutes(), //minute "s+": date.getSeconds(), //second "q+": Math.floor((date.getMonth() + 3) / 3), //quarter "S": date.getMilliseconds() //millisecond }; //把yyyy替换成具体的年份 if (/(y+)/.test(format)) { format = format.replace(RegExp.$...

Python实现的凯撒密码算法示例【图】

这篇文章主要介绍了Python实现的凯撒密码算法,简单介绍了凯撒密码的概念、原理并结合实例形式分析了Python实现凯撒密码算法的相关定义与使用操作技巧,需要的朋友可以参考下本文实例讲述了Python实现的凯撒密码算法。分享给大家供大家参考,具体如下:一 介绍凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。他的原理很简单,说...

Python实现的直接插入排序算法示例【图】

这篇文章主要介绍了Python实现的直接插入排序算法,结合实例形式分析了Python直接插入排序算法的定义与使用相关操作技巧,代码备有较为详尽的注释便于理解,需要的朋友可以参考下本文实例讲述了Python实现的直接插入排序算法。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -*- 直接插入的python实现时间复杂度O(n**2) 空间复杂度O(1) 稳定 思想:先将前两个元素排序,第三个元素插入前面已排好序列,后面的元素依次插入之前已...