山东青岛电脑学校 专业软件工程师培训,软件人才就业实训中心0532-85025005

新手必看 前端经典算法之Javascript

 

插入排序 
插入排序的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表  
排序过程大概如下:  
从第一个元素开始,该元素可以认为已经被排序;  
取出下一个元素,在已经排序的元素序列中从后向前扫描;  
如果该元素(已排序)大于新元素,将该元素移到下一位置;  
重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;  
将新元素插入到该位置后;  
重复步骤2~5。
        /**
         * 插入排序算法
         * @param  {Array} arr 需要排序的数组
         * @return {Array}     从小到大排序好的数组
         */
        function insertSort(arr){
            var len = arr.length;
             for (var i = 1; i < len; i++) {
              var key = arr[i];
             var j = i - 1;
              while (j >= 0 && arr[j] > key) {
                  arr[j + 1] = arr[j];
                  j--;
              }
             arr[j + 1] = key;
         }
        return arr;
        }
算法分析

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 14

JavaScript 搜索框自动提示

 

本文为大家介绍如何实现一个搜索框的提示功能,类似百度搜索。

HTML 代码:

<inputtype="text"id="myInput"onkeyup="myFunction()"placeholder="搜索..."><ulid="myUL"><li><ahref="#"class="header">A</a></li><li><ahref="#">Adele</a></li><li><ahref="#">Agnes</a></li><li><ahref="#"class="header">B</a></li><li><ahref="#">Billy</a></li><li><ahref="#">Bob</a></li><li><ahref="#"class="header">C</a></li><li><ahref="#">Calvin</a></li><li><ahref="#">Christina</a></li><li><ahref="#">Cindy</a></li></ul>

注意: 在实例中我们使用了 href="#",实际应用中你需要把他替换为自己的 URL。

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 11

观点 | 除了学位证书,如何证明自己的深度学习实力?

 

选自fast.ai

作者:Rachel Thomas

机器之心编译

参与:蒋思源、晏奇

 


不是研究生,不是相关专业的我们又该怎样证明自己的深度学习技能?也许很多读者是通过 MOOC 等课程开始了解机器学习,通过专业书籍和实现步入这一学科,但如果没有相关学历,没有 MOOC 的课程证明,我们是否能从博文、问答、竞赛项目和贡献开源项目等方面向机器学习的圈子里证明自己?

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 17

Android 优化APP 构建速度的17条建议

 

较长的构建时间将会减缓项目的开发进度,特别是对于大型的项目,app的构建时间长则十几分钟,短则几分钟,长的构建时间已经成了开发瓶颈,本篇文章根据Google官方文档,加上自己的一些理解提供一些提升app构建速度的优化建议。

1. 为开发环境创建一个变体

有许多配置是你在准备app的release 版本的时候需要,但是当你开发app的时候是不需要的,开启不必要的构建进程会使你的增量构建或者clean构建变得很慢,因此需要构建一个只保留开发时需要配置的变体,如下例子创建了一个devprod变体(prod 为release 版本的配置)。

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 9

Java同步工具类——信号量

 

本文内容来自《Java并发编程实战》

计数信号量(Counting Semaphore)用来控制同时访问某个特定资源的操作数量,或者执行某个特定操作的数量。计数信号量还可以用来实现某种资源池或者对容器加边界。

Semaphore中管理着一组虚拟的许可(permit),许可的初始数量可通过构造函数来指定,在执行操作时可以首先获得许可(只要还有剩余的许可),并在使用以后释放许可。如果没有许可,那么acquire将阻塞知道有许可(或者知道被中断或者操作超时)。release方法将返回一个许可给信号量。计算信号量的一种简化形式是二值信号量,即初始值为1的Semaphore二值信号量可以用作互斥体(mutex),并具备不可重入的加锁语义:谁拥有这个唯一的许可,谁就拥有了互斥锁。

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 8

深度解读JavaScript严格模式

 

ECMAScript 5的严格模式是JavaScript中的一种限制性更强的变种方式。严格模式不是一个子集:它在语义上与正常代码有着明显的差异。不支持严格模式的浏览器与支持严格模式的浏览器行为上也不一样, 所以不要在未经严格模式特性测试情况下使用严格模式。严格模式可以与非严格模式共存,所以脚本可以逐渐的选择性加入严格模式。

严格模式在语义上与正常的JavaScript有一些不同。 首先,严格模式会将JavaScript陷阱直接变成明显的错误。其次,严格模式修正了一些引擎难以优化的错误:同样的代码有些时候严格模式会比非严格模式下更快。 第三,严格模式禁用了一些有可能在未来版本中定义的语法。

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 14

javaSE学习11_数组

 

概述

数组是一种数据结构,用来存储同一类型的集合。通过一个整数下标可以访问数组中的每一个值。例如,如果a是一个整型数组,a[i]就是数组中下标为i的整数。

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 8

35 个 Java 代码性能优化总结

 

前言

代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 11

Java面试题整理

 

面试是我们每个人都要经历的事情,大部分人且不止一次,这里给大家总结最新的2016年面试题,让大家在找工作时候能够事半功倍。

1 Switch能否用string做参数?

a.在 Java 7  之前, switch 只能支持byte,short,char,int 或者其对应的封装类以及 Enum 类型。在JAVA 7中,String 支持被加上了。

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 8

Java对象初始化顺序

 

最近我发现了一个有趣的问题,这个问题的答案乍一看下骗过了我的眼睛。看一下这三个类:
package com.ds.test;

public class Upper {
 String upperString;

 public Upper() {
  Initializer.initialize(this);
 }
}package com.ds.test;

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 7