坏小仔

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年4月2日

摘要: 原文地址:http://www.cnblogs.com/morewindows/archive/2011/08/13/2137415.htm快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序,快速搞定。快速排序是C.R.A.Hoare于1962年提出的一 阅读全文
posted @ 2013-04-02 21:56 坏小仔 阅读(125) 评论(0) 推荐(0) 编辑

摘要: http://www.cnblogs.com/xiao-cheng/archive/2011/10/04/2198972.html定义:一棵空二叉树是AVL树,如果T是非空二叉树,TL和TR分别是其左子树和右子树,则当且仅当TL和TR都为AVL树且|HL-HR|<=1时,T是AVL树。由定义知道一个AVL树的任何节点的左右子树的高度之差不超过1,这是AVL树最基本的特征。AVL树的高度:(固定节点数计算最大高度)记N_h为一棵高度为h的AVL树具有的最小节点数,则最坏情况是它的左右子树的高度不等,一个是N_(h-1)和N_(h-2),从而得到N_h=N_(h-1)+N_(h-2)+1 N 阅读全文
posted @ 2013-04-02 16:18 坏小仔 阅读(307) 评论(0) 推荐(0) 编辑

2013年4月1日

摘要: 参考:http://zh.wikipedia.org/wiki/Peterson%E7%AE%97%E6%B3%95注释: P0每次执行完turn = 0后,若P1也希望进入临界区,P0在while循环时都会忙等,然后进程切换到P1。若P1还没有执行到turn=0,则P1执行turn=0即表示P0先于P1请求进入临界区,所以P0先进入临界区,P1在while循环时忙等。若P1已经执行过turn = 0,此时turn = 1说明P1先于P0请求进入临界区,所以P1先进入临界区,P0在while循环时忙等。 结论: 若两个进程都想要进入临界区即都已经执行过flag[0/1] = true,那... 阅读全文
posted @ 2013-04-01 19:26 坏小仔 阅读(509) 评论(0) 推荐(0) 编辑

摘要: 1 <script type="text/javascript">2 cosole.log(eve); //undefined3 </script>4 <script type="text/javascript">5 function eve(){6 console.log("eve"); 7 }8 </script>1 <script>2 alert(typeof eve); //function3 function eve() {4 alert('I am Lar 阅读全文
posted @ 2013-04-01 10:00 坏小仔 阅读(123) 评论(0) 推荐(0) 编辑

2013年3月24日

摘要: 原型对象的最大问题是由其共享的本性所导致的。原型中的所有属性被很多实例共享: 通过在实例中添加一个同名属性,可以隐藏原型中的对应属性(通过实例对象操作原型对象中的属性只能读,不能写) 对于包含引用类型的值有所不同View Code 1 function Person(){ 2 3 } 4 5 Person.prototype = { 6 constructor: Person, 7 name: 'default name', 8 age: 0, 9 friends: ['A', 'B']10 }11 12 var person1 = new Pe 阅读全文
posted @ 2013-03-24 10:16 坏小仔 阅读(182) 评论(0) 推荐(0) 编辑

摘要: View Code 1 funciton Person(){ 2 3 } 4 5 var person = new Person(); 6 7 Person.prototype = { 8 constructor: Person, 9 name: 'June',10 age: 2411 }12 13 14 //person.sayName(); //error调用构造函数创建实例时,会为实例添加一个指向最初原型的__proto__指针,而把构造函数的原型修改为另一个新对象就等于切断了构造函数与最初原型的连接。注意:实例中的指针仅指向原型,而不指向构造函数。Person.pr.. 阅读全文
posted @ 2013-03-24 09:45 坏小仔 阅读(282) 评论(0) 推荐(0) 编辑

摘要: View Code 1 function Person(){2 3 }4 5 Person.prototype = {6 name: "june"; 7 age: 24 8 };上面代码中:Person.prototype的constructor属性不再指向Person;每创建一个函数,默认创建它的prototype对象,这个对象自动获得constructor属性;上述写法本质是重写了默认的prototype对象,因此constructor属性指向Object构造函数,不再指向Person函数。View Code var person = new Person();ale. 阅读全文
posted @ 2013-03-24 09:19 坏小仔 阅读(170) 评论(0) 推荐(0) 编辑

2013年3月22日

摘要: A线程中创建B线程B.start();B.join(); //A线程等待B线程结束才继续执行 Thread A{ new Thread B; B.start(); //必须先启动 B.join(); //A等待B执行完毕后继续运行 Thread A do something... } 阅读全文
posted @ 2013-03-22 10:08 坏小仔 阅读(117) 评论(0) 推荐(0) 编辑

2013年3月21日

摘要: '\0' 表示空字符,值为0'x':字符"x": 字符串*****变量初始化(待深入学习)const限定符指定该变量的值不能改变优先级:关系运算符<算术运算符 i < lim-1 === i < (lim-1)逻辑运算符 && || 左到右计算,一旦知道结果的真假值就立即停止计算优先级:|| < && <(关系运算符、=)<算术运算符类型转换 窄转换为宽 阅读全文
posted @ 2013-03-21 23:12 坏小仔 阅读(114) 评论(0) 推荐(0) 编辑

2012年9月18日

摘要: function User( properties ) {// Iterate through the properties of the object, and make sure// that it's properly scoped (as discussed previously)for ( var i in properties ) { (function(thiz){// Create a new getter for the propertythiz[ "get" + i ] = function() {return properties[i];};/ 阅读全文
posted @ 2012-09-18 14:38 坏小仔 阅读(114) 评论(0) 推荐(0) 编辑