1、基本思想 假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n]。从i=2起直至i=n为止,依次将R[i]插入当前的有序区R[1..i-1]中,生成含n个记录的有序区。 代码如下:<!doctype html> <html> <head><title>javascript直接插入排序</title> <meta charset = "utf-8" /> </head> <body> <script> var arr = []; for(var i=0;i<20;++i) { arr.push(~~(Math.random()*20)); } document.write(arr+"<b...
排序 var len = 100000; var i; var arr = []; for(i=0; i [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
说明 写这个主要是为了锻炼自己,并无实际意义。 每个浏览器测试得出的数据会不一样。比如我用chrome 测试 一般快速排序都会最快,IE 则根据数组长度有可能希尔最快。 不要用太大数据去测试冒泡排序(浏览器崩溃了我不管) 如果有兴趣可以 下载测试页面 个人理解 冒泡排序:最简单,也最慢,貌似长度小于7最优 插入排序: 比冒泡快,比快速排序和希尔排序慢,较小数据有优势 快速排序:这是一个非常快的排序方式,V8的sort方法就使用...
作为排序依据的数据项称为“排序码”,也即数据元素的关键码。为了便于查找,通常希望计算机中的数据表是按关键码有序的。如有序表的折半查找,查找效率较高。还有,二叉排序树、B-树和B+树的构造过程就是一个排序过程。若关键码是主关键码,则对于任意待排序序列,经排序后得到的结果是唯一的;若关键码是次关键码,排序结果可能不唯一,这是因为具有相同关键码的数据元素,这些元素在排序结果中,它们之间的的位置关系与排序前不...
代码如下: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短,则以不断重复...
所以钻研了一段时间的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...
&&和||在JQuery源代码内尤为使用广泛,由于本人没有系统的学习js,所以只能粗略的自我理解出来,希望大家指点下。 粗略理解如下: a() && b() :如果执行a()后返回true,则执行b()并返回b的值;如果执行a()后返回false,则整个表达式返回a()的值,b()不执行; a() || b() :如果执行a()后返回true,则整个表达式返回a()的值,b()不执行;如果执行a()后返回false,则执行b()并返回b()的值; && 优先级高于 || 如下: 代码 代码如...
首先,我们要考虑一下它的源文件布局,也就是决定代码如何拆分到独立的文件中去。为什么要这么做呢?还记得上期结尾处我提到这个组件会使用“外部代码”吗?为了区分代码的用途,决定将代码至少分成两部分:外部代码文件和 Smart Queue 文件。区分用途只是其一,其二,分散到独立文件有利于代码的维护。试想,以后的某一天你决定要在现有的队列管理基本功能之上,添加一些新的扩展功能,或是把它包装成某个实现特定任务的组件,而又...
代码如下:<script type="text/javascript"> var today=new Date(); //定义当天日期对象 var year = today.getYear(); //获取年份 var month = today.getMonth(); //获取月份 var date = today.getDate(); //获取日期值 try{ //定义下个日期对象,日期值加上30天 var nextDay = new Date(year,month,date+30); //把下个日期对象信息打印出来 document.write(nextDay.getYear(),<br>); document.write(nextDay.getMonth()+1,<br>); d...
一:UTF8编码函数 代码如下:function URLEncode(Str){ if(Str==null||Str=="") return ""; var newStr=""; function toCase(sStr){ return sStr.toString(16).toUpperCase(); } for(var i=0,icode,len=Str.length;i<len;i++){ icode=Str.charCodeAt(i); if( icode<0x10) newStr+="%0"+icode.toString(16).toUpperCase(); else if(icode<0x80){ if(icode==0x20) newStr+="+"; else if((icode>=0x30&&icode<=0x39)||(icode>=0x41&&i...
使用说明:程序比较简单,代码中都有说明,这里说说怎么使用。 首先是实例化一个Calendar,并设置参数。 参数说明: Year:要显示的年份 Month:要显示的月份 SelectDay:选择日期 onSelectDay:在选择日期触发 onToday:在当天日期触发 onFinish:日历画完后触发 一般SelectDay设置成选择了的日期,并在onSelectDay中设置一个函数用来设置这个日期的样式, 例如实例里SelectDay设置成今个月10号并在那天样式设为onSelect: 代码如下:Se...
作者:llinzzi 日期:2007-05-24 去年做了个小东西,一个在线WebGame,目前只实现了多人聊天,移动,拖动画面移动,场景系统等,可以当场景聊天室使用。不过扔了一年了。如图美工由静电设计后台将由老于开发今年想再捡起来好好做做,由于是基于坐标点的,所以移动路径非常费资源。找到了一个A*的路径算法,挺智能。转载一些介绍【转自 http://data.gameres.com/message.asp?TopicID=25439】译者序:很久以前就知道了A*算法,但是从未...
具体代码及比较如下所示: 代码如下:<!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" lang="gb2312"> <head> <title> 常见排序算法 之 JavaScript版 </title> <meta http-equiv="content-type" content="text/html; charset=gb2312" /> <meta name="keywords" content="排序,算法,JavaScript排序"...
说到做游戏,必不可少的需要用到寻路算法,一般游戏里的寻路算法大多数都以A*算法为主,这里也就实现了js里采用a*寻路的程序,在51js和蓝色都开了帖。 程序是以前写的,后来也没有修正或者精简,有冗余之处大家还见谅一下。 当然,这个寻路算法也不是最优化的,像幻宇开发的“交点寻径法”也是个中精品,两者可谓各有千秋,只是如果地图很大的情况下,我们会惊讶于“交点寻径法”的迅速。 use A* to find path... /* ...
以前学习冒泡算法,总是弄不清楚n和n-1等一些变量的关系,原因是没有弄明白它的真正含义,今天写了一个冒泡算法的JS小程序,终于弄明白了。 代码如下:var R1=new Array(); R1[1]=35; R1[2]=55; R1[3]=65; R1[4]=20; R1[5]=30; R1[6]=25; R1[7]=0; R1[8]=7; R1[9]=5; R1[10]=3; var R2=new Array(35,55,65,20,30,25,0,7,5,3); var R3=new Array(35,55,65,20,30,25,0,7,5,3); function BubbleSort1() { var n=R1.length-1; f...