制做一个活动页面 秒杀列表页 需要一个时间的算法排序 自己琢磨了半天想了各种算法也没搞出来,后来问了下一个后台的php同学 他写了个算法给我看了下 ,刚开始看的时候觉得这就是个纯算法,不能转化成页面的dom效果,可是再看了两遍发现可以, 于是我就改了改,实现了,先分享给大家。 页面需求是:从11点到20点 每隔一个小时一场秒杀 如果是当前时间就显示正在秒杀 之前的商品就往最后排 以此类推 类似最开始的11点顺序是 11,12,1...
本文为大家分享了五个javascript算法,供大家参考,具体内容如下 1. 线性查找<!doctype html> <html lang="en"> <head><meta charset="UTF-8"><title>线性查找</title> </head> <body><p>数组为:[2,4,6,23,53,545,65,3,24,5,3,6]</p><p>输入要查的值:<input type="text" id="serch" onchange="search_index(this.value)"><p><p>这个值在数组的位置是:<span id="val"></span><p><script> //1.声明查找函数//Arr为数组,x为要搜...
笔试面试经常涉及各种算法,本文简要介绍常用的一些算法,并用JavaScript实现。 1、插入排序 1)算法简介 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素...
本文实例讲述了JavaScript实现MD5算法的方法。分享给大家供大家参考,具体如下: /** * * MD5 (Message-Digest Algorithm) * http://www.webtoolkit.info/ * **/ var MD5 = function (string) {function RotateLeft(lValue, iShiftBits) {return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));}function AddUnsigned(lX,lY) {var lX4,lY4,lX8,lY8,lResult;lX8 = (lX & 0x80000000);lY8 = (lY & 0x80000000);lX4 = (lX & 0x40...
今天抽点时间把javascript中的一些常用的数组算法做一下总结,以方便大家面试笔试或者日常开发过程中用到。其中部分算法来自网络,这里做了下汇总整理。文章末尾我会把参考的来源附上去,如果直接看算法比较枯燥的可以到参考文献里去看,讲解的非常不错。 一、数组去重方法1: //利用数组的indexOf方法 function unique (arr) {var result = []; for (var i = 0; i < arr.length; i++){if (result.indexOf(arr[i]) == -1) result.pu...
本文实例讲述了JavaScript实现的SHA-1加密算法。分享给大家供大家参考,具体如下: /** * * Secure Hash Algorithm (SHA1) * http://www.webtoolkit.info/ * **/ function SHA1 (msg) {function rotate_left(n,s) {var t4 = ( n<<s ) | (n>>>(32-s));return t4;};function lsb_hex(val) {var str="";var i;var vh;var vl;for( i=0; i<=6; i+=2 ) {vh = (val>>>(i*4+4))&0x0f;vl = (val>>>(i*4))&0x0f;str += vh.toString(16) + vl....
本文实例讲述了Javascript实现的SHA-256算法。分享给大家供大家参考,具体如下: /** * * Secure Hash Algorithm (SHA256) * http://www.webtoolkit.info/ * * Original code by Angel Marin, Paul Johnston. * **/ function SHA256(s){var chrsz = 8;var hexcase = 0;function safe_add (x, y) {var lsw = (x & 0xFFFF) + (y & 0xFFFF);var msw = (x >> 16) + (y >> 16) + (lsw >> 16);return (msw << 16) | (lsw & 0xFFFF);}func...
学习起因曾经有一次在逛V2EX时,碰到这么一个帖子。 数学完全还给老师了,想学回一些基础数学,大概是高中程度的,有什么书籍推荐? 发帖的楼主大学没有高数课程,出去工作时一直在从事前端的工作。感觉到数学知识的匮乏,所以想补一补数学。 看了看帖子,感觉和我很像,因为我的专业是不开高数的,我学的也是前端。也同样感觉到了数学知识匮乏所带来的困顿。同时因为自己的数学思维实在是不怎么好,所以决定努力补习数学与计算机基...
链表简介链表是一种常见的数据结构,也属于线性表,但不会按线性的顺序来储存数据。而是在每一个节点中,储存了下一个节点的指针。可以看图理解。(有C语言基础的可能比较好理解)。 使用链表结构可以克服数组需要预先知道数据大小的缺点(C语言的数组需要预先定义长度),链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。 接下来就是介绍两种常见的链表: 单向链表,双向链表在JavaScript中的实现。单向链表链表中最简单...
集合(Set)说起集合,就想起刚进高中时,数学第一课讲的就是集合。因此在学习集合这种数据结构时,倍感亲切。 集合的基本性质有一条: 集合中元素是不重复的。因为这种性质,所以我们选用了对象来作为集合的容器,而非数组。 虽然数组也能做到所有不重复,但终究过于繁琐,不如集合。集合的操作集合的基本操作有交集、并集、差集等。这儿我们介绍JavaScipt集合中交集、并集、差集的实现。 JavaScipt中集合的实现首先,创建一个构造函...
本文实例讲述了JavaScript黑洞数字之运算路线查找算法。分享给大家供大家参考,具体如下: 运行效果截图如下:具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>运算路线查找算法</title><script type="text/javascript" >var BLACKHOLENMB = 6174;var count = 0;function ...
本文实例讲述了js实现的二分查找算法。分享给大家供大家参考,具体如下:<!DOCTYPE html> <html><head><title>demo</title><style type="text/css"></style><script type="text/javascript">var binarySearch = function(array, start, stop, num) {if(stop - start == 1) {if(array[start] == num) {return start;}if(array[stop] == num) {return stop;}return -1;} var center = Math.floor((start + stop)/2);if(num != array...
先来聊一聊Top K算法,具体内容如下 应用场景: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。 假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门。),请你统计最热门的10个查询串,要求使用的内存不能超过1G。 必备知识: 什么是哈希表? ...
本文实例讲述了JS折半插入排序算法。分享给大家供大家参考,具体如下: function pushArrayWithIndex(arr, index, value) { // 将元素添加到数组的指定位置var temArr = arr.slice(0, index);temArr.push(value);return temArr.concat(arr.slice(index)); } /* test for pushArrayWithIndex var arr = [1, 2, 3, 4, 5]; arr = pushArrayWithIndex(arr, 1, 9); console.log(arr);*/ function sortInsert(arr) { // 插入排序var temA...
本文实例讲述了javascript常用算法。分享给大家供大家参考,具体如下: 入门级算法-线性查找-时间复杂度O(n)--相当于算法界中的HelloWorld //线性搜索(入门HelloWorld) //A为数组,x为要搜索的值 function linearSearch(A, x) {for (var i = 0; i < A.length; i++) {if (A[i] == x) {return i;}}return -1; }二分查找(又称折半查找) - 适用于已排好序的线性结构 - 时间复杂度O(logN) //二分搜索 //A为已按"升序排列"的数组,x为要查...