- 博客(46)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 golang 控制方法的访问时间
package mainimport ( "time" "fmt")func main() { limitTime(funcA, 6*time.Second)}func limitTime(f func(),timer time.Duration) { ok := make(chan struct{}) go func() { f() ok<- stru...
2019-02-20 17:55:44 630
原创 golang 声明结构体和声明接口的疑点
type interfaceA interface { Num() int}type structA struct { num int}func (s *structA) Num() int { return s.num}func getData(ia interfaceA) { if ia == nil { fmt.Println(&quot;true&quot;) } else {...
2019-02-14 16:58:03 945
原创 golang 切片copy复制和等号复制的区别
结论:copy赋值会比等号赋值慢。但是copy赋值为值复制,改变原切片的值不会影响新切片。测试赋值速度:func TestArr1(t *testing.T) { var a []int for i := 0; i &amp;amp;lt; 100000000; i++ { a = append(a, i) } start := time.Now().UnixNano() var b = mak...
2019-01-04 17:52:48 20286 3
原创 golang利用反射修改结构体字段的值
直接上代码package mainimport ( &quot;fmt&quot; &quot;reflect&quot; &quot;testing&quot;)type B struct { i int64}func TestReflect(t *testing.T) { x := B{1} b := reflect.ValueOf(&amp;amp;x.i) /
2019-01-04 17:42:03 4362
原创 golang的unsafe包
unsafe包主要用于golang编译。其他地方不推荐使用。结构体的成员在内存中的分配是一段连续的内存,结构体中第一个成员的地址就是这个结构体的地址,也可以认为是相对于这个结构体偏移了0。相同的,这个结构体中的任一成员都可以相对于这个结构体的偏移来计算出它在内存中的绝对地址在golang(1.10.3)中,unsafe包中有3个方法(参数不能为函数)unsafe.Sizeof() 获...
2018-12-26 15:51:03 941
原创 记录for循环中的小坑
在for range循环for i, v := range []data{}中, v只初始化一次,也就是它的指针地址在for循环中是不变的。所以在第二个程序的pase_student()函数中的for循环,获取到的指针地址都是相同的。所以输出结果是相同的。所以在for循环中,如果涉及到指针,一定要谨慎。package mainimport ( "fmt")type st...
2018-10-24 14:13:12 424
原创 golang中的defer函数的执行顺序
测试代码1func TestDefer(t *testing.T) { fmt.Println("a") defer fmt.Println("b") defer c() defer d() fmt.Println("f")}func c() { fmt.Println("c")}func d() func(){ fmt.Println("d") return fun...
2018-10-08 03:57:10 1759
原创 归并排序(golang实现)
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。具体实现示意图:效果图:代码package mainimport "fmt"func main() { arr := []int{8, ...
2018-09-29 10:45:36 5276 9
原创 希尔排序(golang实现)
希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位希尔排序通过将比较的全部元素分为几个区域来提升插入排序的性能。这样可以让一个元素可以一次性地朝最终位置前进...
2018-09-28 16:36:52 2107
原创 选择排序法(golang实现)
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其...
2018-09-28 11:02:47 907
原创 插入排序(golang实现)
插入排序都采用in-place在数组上实现。具体算法描述如下:从第一个元素开始,该元素可以认为已经被排序 取出下一个元素在已经排序的元素序列中从后向前扫描在已经排序的元素序列中从后向前扫描如果该元素(已排序)大于新元素,将该元素移到下一位置重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 将新元素插入到该位置后重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 将新元素插...
2018-09-27 18:27:47 485
原创 冒泡排序(golang实现)
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。 走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。package mainimport &quot;fmt&quot;func main() { arr := []int{...
2018-09-27 16:04:07 1069
原创 快速排序法(golang实现)
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二次方项之可能性。
2018-09-26 18:33:09 5725
原创 golang中数组和切片的区别与联系
golang中数组和切片的区别:切片时指针类型,数组是值类型数组的长度是固定的,而切片不是(切片是动态的数组)切片比数组多一个属性:容量(cap)切片的底层是数组既然一个是指针类型,一个是值类型,那么区别体现在哪里呢?看下这个例子 numbers := []int{1, 2, 3, 4, 5, 6} for i, e := range numbers { if i == l...
2018-09-25 11:03:42 4170
原创 记录学到的一些简单算法(golang实现,不定期更新)
1.取余取余常用于判断整数的奇偶性,但其实判断奇偶性可以用&amp;amp;amp;,没必要用取余操作 var num = 17 if (num &amp;amp;amp; 1) == 1 { fmt.Println(&amp;quot;奇数&amp;quot;) } else { fmt.Println(&amp;quot;偶数&amp;quot;) }一次循环遍历二维数组:遍历二维数组通
2018-09-21 16:26:36 577
原创 初识Golang
按照一周写一篇博客的习惯,今天又得上交博客了 =.= 因为对区块链感兴趣,看很多人推荐学golang,所以这周买了本&amp;amp;lt;&amp;amp;lt;`Go语言实战&amp;amp;gt;&amp;amp;gt; Go的优势(小白观点,欢迎各位大牛指正) 1.编译速度极快.因为只编译那些直接被引用的库,而不像Java,C,C++要遍历所有依赖链中所有依赖的库 2.支持并发.goroutine很像线程,但占用的内存远少于线程
2018-06-19 23:59:04 190
原创 mongodb与node
本文主要讲node是如何连接mongodb,并做基本的增删改查操作 mongodb的安装不多赘述,可参考菜鸟教程 mongodb与mysl的性能分析 本文参考地址: https://github.com/mongodb/node-mongodb-native 官方API文档:https://mongodb.github.io/node-mongodb-native/3.0/api/本文...
2018-06-05 23:32:18 1099
原创 V8引擎的内存分配
在Node中通过JavaScript使用内存时只能使用部分内容,64位系统下约为1.4GB,32位系统下约为0.7GB.当我们在代码中声明变量并赋值时,所使用对象的内存就分配在堆中.如果已申请的堆空间内存不够分配新的对象,将继续申请堆空间,直到堆的大小超过V8的限制为止.Node在启动时,可以通过设置参数来调整内存限制的大小.node --max-old-space-size=1700...
2018-05-27 22:20:19 2197
原创 NodeJS的异步、并发编程方案
一、事件发布/订阅模式(events)事件发布/订阅模式自身并无同步和异步的问题,但在node中,emit()调用多半是伴随时间循环而异步触发的。 订阅:emitter.on(&amp;amp;quot;event1&amp;amp;quot;, function(message){ console.log(message);});发布emitter.emit(&amp;amp;quot;event1&amp;a
2018-05-24 20:46:46 8522
翻译 将Node.js web app部署到docker中
一.创建一个简单的Node.js app1.1 新建package.json文件{ "name": "docker_web_app", "version": "1.0.0", "description": "Node.js on Docker", "au
2018-04-22 00:43:01 1275
原创 备份数据库
DBNAME=yitai DATE=date +"%Y%m%d_%H_%M_%S" SQLFILE=DBNAME−DBNAME−DBNAME-{DATE}.sql mysqldump –opt –user=root –password=Jiang DBNAME&gt;/home/st/backup/data/DBNAME&gt;/home/st/backup/data/DBNAME > /h...
2018-03-04 21:57:51 199
原创 安装nodejs步骤
一:安装Nvm curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash 二:用Nvm安装Node.js nvm install 5.1.0 nvm alias default 5.1.0 三:安装使用CNpm npm install -g cnpm –registry=htt...
2018-03-02 15:31:12 239
原创 click已经安装好了 仍然提示ImportError: No module named click
网络上的方法都试过了,还是不行, 于是重复了下命令 pip install click 结果如下 Requirement already satisfied: click in e:\anaconda3\lib\site-packages于是去查看了下e:\anaconda3\lib\site-packages,发现里边并没有click文件,于是通过其他软件搜索到click文件,将这个文件
2018-01-16 16:44:24 15282 1
原创 socket.timeout: The read operation timed out
pip 安装第三方库是报错socket.timeout: The read operation timed outpip install Pillow换成 pip –default-timeout=100 install -U Pillow
2018-01-14 23:37:31 4309
转载 线性回归
https://mp.weixin.qq.com/s?__biz=MzUyMjE2MTE0Mw==&mid=2247485085&idx=1&sn=a1c7266b54624a4999769ee6b38e0a81&chksm=f9d15805cea6d113c8441432571bcd028586a12eb0272ddac56105acc752f87f8e5ef262497d&scene=0#rd
2017-12-26 23:56:06 209
转载 GoJS炫酷的流程图效果
最近公司要用到知识图谱,所以需要一个类似于流程图的UI来与后台交互,能够方便客户使用。 非常感谢懒得安分写的博客,给了我很大的帮助。 原文地址 http://www.cnblogs.com/landeanfen/p/7910530.html为什么我要转载呢? 因为我怕哪天博主把帖子删了。。。。 写在前面:我只是为了记代码,所以建议你们去看原文。。。一、初次接触GoJS简介 GoJS是一
2017-12-26 17:20:53 19373
原创 SSH远程连接Google的Compute Engine
1.首先登陆虚拟机,我用的centOS 2.执行命令exit,退出root,因为秘钥会记录用户名 3.执行命令 ssh-keygen -t rsa 创建秘钥 4.看看~/.ssh目录下有没有一个pub后缀的文件,复制文件中的内容 5.打开服务器,如图 点击修改,将内容添加进去即可。 6.进入虚拟机,用创建秘钥的用户执行 ssh 用户名@服务器外网地址 即可话说,这么基础的东西都不会
2017-12-22 16:56:11 5123
转载 $("#id")与document.getElementById("id")的区别
以前一直认为jquery中的$(“#id”)和document.getElementByIdx_x(“id”)得到的效果是一样的,今天做特效的时候才发现并不是这么一回事,通过测试得到:1、alert($(“#div”))得到的是[object Object]2、alert(document.getElementById(“div”))得到的是[object HTMLDivElement]3、aler
2017-12-07 12:13:57 709
转载 设计模式-单例模式
单例模式作为面试题经常会被问道目的:使得类的一个对象成为系统中的唯一实例 应用场景:一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如在Windows中就只能打开一个任务管理器。如果不使用机制对窗口对象进行唯一化,
2017-12-05 21:33:29 256
原创 支持向量机SVM
SVM的本质:寻找最大的间隔 支持向量:距离超平面最近的那些点 SMO算法的原理:每次循环中选择两个alpha进行优化处理。一旦找到一对合适的alpha,那么就增大其中一个同时减小另一个。合适:条件一,两个alpha要在间隔边界之外;条件二,这两个alpha还没有进行过区间化处理或不在边界上#SMO的辅助函数#打开文件并逐行解析,得到每行的类标签和特征矩阵def loadDataSet(
2017-11-19 23:07:11 326
原创 Logistic回归
利用Logistic回归进行分类的思想:根据现有数据对分类边界线建立回归公式 优点:计算代价不高,易于理解和实现 缺点:容易欠拟合,分类精度可能不高 适用数据类型:数值型和标称型数据 Sigmoid函数: Sigmod函数的输入Z: 采用向量的写法 梯度上升法:要找到某函数的最大值,最好的方法是沿着该函数的梯度方向探寻 函数f(x,y)的梯度上升的迭代公式:w
2017-11-11 20:16:27 251
原创 基于概率论的分类方法:朴素贝叶斯
朴素:整个形式化过程制作最原始,最简单的假设。一个假设是特征的独立性,另一个是每个特征同等重要 优点:在数据较少的情况下仍然有效,可以处理多类别问题 缺点:对于输入数据的准备方式较为敏感 适用数据类型:标称型数据 贝叶斯理论的核心思想:选择高概率对应的类别 贝叶斯准则:P(h | D) = P(h) * P(D | h) / P(D) 独立性:一个特征出现的可能性和其他单词没有任何关系
2017-11-06 22:56:51 313
原创 决策树:ID3算法
组织杂乱无章的数据的一种方法就是使用信息论度量信息 在划分数据集前后信息发生的变化成为信息增益 集合信息的度量方式称之为香农熵或熵 也就是说可以通过香农熵的变化来体现信息增益 计算所有类别的信息期望值(熵) 公式为 单个数据的信息期望值为计算给定数据集的香农熵from math import logimport numpy as npdef calShannonEnt(dataS
2017-11-05 00:18:30 353
原创 K-近邻:手写字识别
思路: 手写字图像为32*32个数字组成的,每个图像就是一个txt文件。 运用os模块下的listdir()获取目录下的文件名称,如0_13.txt,0即为图像类别,遍历文件目录,获取图像类别保存到一个列表,再将所有图像保存到一个列表(图像由二维(32*32)转换为一维(1*1024))。 用相同方法获取另一个文件目录下的txt,组成一个列表作为测试集。此时k-近邻算法函数的4个参数就都有了,
2017-11-04 17:23:10 409
原创 K-近邻:改进约会网站的配对效果
读取文件,展示三个特征:不喜欢,一般,喜欢 与三个条件:飞机里程,游戏时间,每周消费的冰激凌 之间的关系import numpy as npdef file2matrix(filename): fr = open(filename) arrayOLines = fr.readlines() #按行读取文件 numberOFLines = len(arrayOLines) #获
2017-11-04 13:17:31 648 3
原创 IndexError: too many indices for array
在练习机器学习的时候遇到了一个小问题,花费了挺长时间,故记录下 源码from numpy import *def file2matrix(filename): fr = open(filename) arrayOLines = fr.readlines() numberOFLines = len(arrayOLines) returnMat = zeros(num
2017-11-04 00:19:30 114360 3
原创 排列组合问题
问题描述:将1到9 , 9个数字填入下列式子中,使其成立 ()-()=()-()=()-()=()-()=() 找出所有的可能(由一道小学3年级的题改编 =。=!) 思路:将9个数字放入列表中,获取所有的可能的列表。带入上面的公式,成立的打印出来。 思路很简单,本以为很快就能做出来,但是当我排列组合时,遇到了各种问题(有兴趣的朋友可以试试),所以最后只能用我大 Python的内置函数了。
2017-11-03 16:11:15 294
原创 一个简单的K-近邻
import kNNimport numpyimport operatordef createDateSet(): #定义数据集 group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) labels = ['A','A','B','B'] return group, labelsgroup, labels = createDa
2017-11-03 00:06:37 236
原创 爬取京东商城的手机图片
按照韦玮老师书中代码,如下import reimport urllib.requestdef craw(url, page): html = urllib.request.urlopen(url).read() html = str(html) pat1 = '<div id="plist".+? <div class="page clearfix">' resul
2017-11-01 21:38:43 761
如何实现自己网站上的视频只能播放前几分钟
2017-12-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人