自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 常用排序算法2--归并排序和快速排序

function ArrayList() { var arr = []; this.insert = function (value) { arr.push(value); } this.toString = function () { return arr.join(" "); } /*归并排序*/ this.mergeSort = function () { a

2017-10-26 20:49:21 287

原创 有序数组归并和有序单链表归并

学归并排序算法的时候,先要了解归并有序数组。顺便写个有序单链表的归并/*有序数组的归并*/function mergeArr(arr1, arr2) { var result = [], arr1_index = 0, arr2_index = 0; while(arr1_index < arr1.length && arr2_index < arr2.lengt

2017-10-26 17:12:35 517

原创 常用排序算法1--冒泡排序,选择排序,插入排序

我们先不分析排序算法的复杂度和稳定性,着重实现一遍所有的排序算法。然后另起一篇简单的分析一下/*Sort and search method*/function ArrayList() { var arr = []; this.insert = function (value) { arr.push(value); } this.toString = function (

2017-10-25 21:14:32 243

原创 对字典类型的扩充

想不通,为什么《学习Javascript数据结构与算法》为什么会设计这样的一小节仅仅是对原生的功能稍微扩充了一下。不说了,为了保持完整性,把代码贴出来吧/* 使用字典来存储唯一值*/function Dictionary() { var items = {}; /*向字典中添加元素, 或者更新一个元素*/ this.set = function (key, value) {

2017-10-11 20:42:34 497 2

原创 二分查找(binary search)

二分查找,也叫做折半查找,或者叫二分搜索。这个算法要求被搜索的数据结构已经排序。比起顺序查找要快很多用递归我们可以很容易的写出这样的算法function binarySearch(value, arr) { var mid = Math.floor(arr.length / 2); if(arr[mid] == value) { return mid; } if(arr[

2017-10-08 19:47:14 342

原创 单链表的实现扩充

之前我们用2种方法实现了单链表,现在我们将再增加一种方法。function LinkedList() { var Node = function (value) { this.value = value; this.next = null; } var head = null; var length = 0; /* 1)使用一个辅助函数来实现递归*/ this.ap

2017-10-08 16:45:15 1848

转载 不重启修改计算机名

原文地址:点击打开链接

2017-10-07 12:03:25 785

转载 Django 踩过的坑(一)

http://www.cnblogs.com/keinlee/p/7083801.html第二次遇到了,还是记录一下

2017-10-07 11:48:20 483 1

原创 笔记:SEO在网站制作中的应用

本文为一篇慕课网SEO学习笔记。原视频地址: SEO在网站制作中的应用1.分类白帽SEO与黑帽SEO2.优化方法 1)内容上的SEO对网站的标题、关键字、描述进行精心设计。及网站内容优化、加设 Robot.txt文件。网站地图、增加外链引用。2)网站结构布局优化    目录层次结构小(不要超过三层)控制首页的链接数量面包屑导航(告知在网页中所处的位置,

2017-10-06 19:19:10 356

原创 二叉搜索树(Binary Search Tree)

二叉搜索树,也叫做二叉排序树。这种结构查找元素非常的高效。在JS里面构建这种结构,有2种方法1)通过嵌套的对象 2)通过嵌套的数组下面我们给出嵌套的对象来实现这种结构/* 二叉搜索树,二叉排序树,Binary Search Tree 这里我们使用嵌套的对象(nested object)*/function BinarySearchTree() { var Node

2017-10-05 20:20:20 443

原创 集合的实现3--ES6的set类型

ES6也实现了Set类型。ES6入门之set和map我们看到var set = new Set([1, 2, 2, 3, 3]);console.log(set);我们也可以稍微修改一下程序。使之可以接受参数。看下面的bold文本部分。由于使用的是函数表达式(对应的是函数声明)。因此代码得放在合理的位置/* 使用数组来模拟集合*/functio

2017-10-05 14:55:54 295

原创 集合的实现2--使用数组

上节我们使用了对象来实现集合类,这节我们使用数组来实现同样的功能/* 使用数组来模拟集合*/function Set(arr) { var items = []; this.add = function (value) { if(this.has(value)) { return false; } items.push(value); return true

2017-10-05 11:15:34 294

原创 集合的实现1--使用对象

集合: 无序不重复/* Set 集合:不重复并且无序*/function Set() { var items = {}; /*集合中添加一个元素*/ this.add = function(value) { if(!this.has(value)) { items[value] = value; return true; } return f

2017-10-04 17:22:21 252

原创 单链表练习2--倒置或者翻转

单链表的倒置,就是将单链表翻转过来,最后一个节点当成是第一个节点,以此类推。重新生成一个新的链表,只在第0个位置插入可以实现/*测试函数*/function test(arr) { var link_list = new LinkedList(); for(var i=0; i<arr.length; ++i) { link_list.append(arr[i]); }

2017-10-04 15:35:45 312

原创 单链表练习1--去重

在进行单链表去重之前,我们先来考虑一下,数组如何就地去重。我们可以很容易的编写出这样的代码:如果通过正向遍历来删除的话,就要注意控制遍历的长度。function arrRemoveRepeatFront(arr) { for(var i=0; i<arr.length; ++i) { if(arr.indexOf(arr[i]) < i) { arr.splice(i, 1

2017-10-04 15:08:28 524

原创 单链表的实现

这节我们实现一个单链表,有详细的注释。之前贴出代码好了/* 链表数据结构的实现*/function LinkedList() { var Node = function (element) { this.element = element; this.next = null; } var length = 0; var head = null; /*向列表

2017-10-03 17:08:53 241

原创 循环队列--击鼓传花或者叫烫手的山芋(hot potato)

之前我们已经实现了一个Queue的构造函数。这里使用它来模拟一个击鼓传花的游戏。function hotPotato(name_list, num) { var queue = new Queue(); for(var i=0; i<name_list.length; ++i) { queue.enqueue(name_list[i]); } var eliminated = "

2017-10-03 12:56:27 2284

原创 优先队列的实现

我们在排队的时候,经常会按照优先级为队列进行排序下面给出一种优先级队列/*优先队列*/function PriorityQueue() { var items = []; /* 这里我们使用数字来定义优先级, 数字小的优先级高。0 的优先级大于1的优先级 同等优先级。先进入队列的排在前面 */ var QueueElement = function (value,

2017-10-03 12:38:56 306

原创 队列的实现

同样适用数组来模拟队列/* Queue class*/function Queue() { var items = []; /*入队*/ this.enqueue = function (value) { items.push(value); } /*出队,出列*/ this.dequeue = function () { return items.sh

2017-10-03 12:37:32 226

原创 栈的应用4--中缀表达式转换为后缀表达式

先占个坑

2017-10-03 12:35:38 198

原创 栈的应用3--进制转换

进制转换可以使用使用取余法来实现基本上是学习编程最常见的一个练习。学习几个基本的单词被除数: dividend除数: divisor商: quotient余数: remainderfunction numberConversion(num, base) { var stack = new Stack(); var base_str = "0123456789

2017-10-02 14:34:10 260

原创 栈的应用2--通用括号平衡

上节我们实现了圆括号的匹配但实际上我们可以实现任意多种括号的匹配。考虑这样的匹配   {[](){}[]()}   。我们只需要在弹出栈的时候判断一下对应关系即可    /* 通用括号匹配*/function generalBracketBalanced(str) { var stack = new Stack(); var types = { "(": ")", "

2017-10-02 14:29:19 319

原创 栈的应用1--圆括号平衡

圆括号平衡,这里可以看相关的问题描述python数据结构与算法 5栈的应用之圆括号平衡主要关心代码的实现,/*平衡圆括号*/function isBracketBalanced(str) { /* @str:圆括号字符串,比如 "()()" "(()()())" 平衡 "(()" 非平衡, 左括号较多 "(()))))" 非平衡,右括号较多

2017-10-02 12:41:44 1632

原创 栈的实现

实现简单,不多解释了,使用数组来保存数据function Stack () { var items = []; //入栈 this.push = function (item) { items.push(item); } // 出栈 this.pop = function () { return items.pop(); } // 返回栈顶的元素 this.pe

2017-10-02 12:22:31 248

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除