数据结构及算法
Wind_white
这个作者很懒,什么都没留下…
展开
-
插入排序
Sorting大体共分五类:1、插入排序2、交换排序3、选择排序4、归并排序5、计数排序本文介绍插入排序:一、直接插入排序(Straight Insertion Sort)需要一个监视哨,一般设在0位置处。大意: 先把第i个位置的元素放入监视哨(i从2开始,i那么 第i-1个数赋值给第i个,并且从i-2开始,直到r[0](待排序的数原创 2017-03-20 21:07:10 · 194 阅读 · 0 评论 -
tensorflow 知识过程
# Tensorflow note基本用法起始节点c = tf.Constant(tf.int32, shape=[None, 1], name="Constant")v = tf.Variable(...) # 运行中被更新p = tf.placeholder(...)shape[None, 784] # None代表第一纬度不确定,视输入而...原创 2018-03-11 18:29:11 · 253 阅读 · 0 评论 -
从零开始深度学习搭建神经网络(二)
参考资料:coursera的AndrewNG deeplearning.ai课程github: https://github.com/Lee-Jiazheng/My_neural_network.git中的hidden_func.py中通过上一次的学习,我们已经能够完成一个简单的神经网络,但如此简单的神经网络在进行学习的时候准确率有限,因为每一次学习都相当于在图中分割一刀,原创 2017-09-06 11:56:25 · 924 阅读 · 0 评论 -
从零开始深度学习搭建神经网络(一)
人工智能不神秘,会一点加减乘除就够了。对于神经元来说,当神经受到刺激的时候,会释放神经递质传给下一个神经元,不同程度的刺激对下一个神经元释放的神经递质的量也不同,所以模仿这个过程建立神经网络:当输入一个数据x的时候,模拟输入一个外界刺激,经过处理后,输出的结果为f(x),把这个f(x)传给下一个神经元,逐步求解,最终输出一个值z,与给定的值进行对比(有监督学习),根据结果调整每个的神经元内原创 2017-09-04 17:43:03 · 6800 阅读 · 1 评论 -
python实现三元语言模型与输入法推荐
语言模型的作用是在大量的训练样例中,给出一个句子求出概率,其中应用的技术有平滑、 统计语言模型。 假设S表示某一个有意义的句子,由一连串特定顺序排列的词w1、w2、w3、...、wn组成,利用条件概率公式,能够得到:P(S)=P(W1,W2,W3,...,Wn)=P(W1)P(W2|W1)P(W3|W1,W2)…P(Wn|W1,W2,…,Wn-1)P(W1) —— ...原创 2017-05-21 11:39:28 · 5877 阅读 · 9 评论 -
查找的方式
一、静态查找:1、顺序表:顺序查找2、有序表:这般查找3、(比较难)静态树表:构建静态最优查找树(Static Optimal Search Tree),但有效率的方式是次优查找树(Nearly Optimal Search Tree)。用途:查找各元素的概率不同时,找到一个权值和最小的树,递归构建树。注意:在构建的时候,有可能出现被选为根节点的关键字的权值比与它相邻的关键字的原创 2017-04-04 21:52:59 · 468 阅读 · 0 评论 -
Longest Symmetric String (25) 与Manacher算法
求最长回文子串问题。数据量比较小,可以进行暴力破解。但有一种更好的算法,Manacher 算法。详见:https://segmentfault.com/a/1190000003914228题目代码:#include "iostream"#include "vector"#include "string"#include "cstring"#include "原创 2017-03-26 22:17:06 · 313 阅读 · 0 评论 -
排序算法总结
排序算法总结: 排序方法平均时间最坏情况辅助存储简单排序O(n2)O(n2)O(1)快速排序O(nlogn)O(n2)O(logn)堆排序O(nlogn)O(nlogn)O原创 2017-03-23 23:23:06 · 401 阅读 · 0 评论 -
基数排序
基数排序(Radix Sorting) 一、多关键字的排序:基数排序的应用主要在于多关键字的排序,例如对数字进行排序,可以将个位置为最次要关键字,最高位为首要关键字。进行排序。MSD(Most Significant Digitfirst)法,进行最高位优先排序。LSD(Least SignificantDigit first)法,进行最低位优先。二、链式基数排序:早在原创 2017-03-23 13:45:21 · 470 阅读 · 0 评论 -
编译原理分析过程
一、编译原理概述编译程序就是把高级语言源程序生成为汇编代码的过程,生成的汇编代码再由汇编器连接器等生成目标机器上的可执行代码。一般编写高级语言编译程序采用自举形式,如,C语言编译器首先由其他语言如汇编语言编写,再有生成的目标EXE程序对编写的C语言程序进行自我编译,调试后即为第一个C语言编译程序的编写过程,即自举。而如今,我们已经有了C语言编译程序,可以直接用C语言编译自己用C语言编写原创 2017-01-22 21:26:06 · 2287 阅读 · 0 评论 -
交换排序之堆排序
选择排序 选择排序(Selection Sort)的基本思想是:第i趟在剩余的n-i+1中选择第i小的记录。其中最简单的事简单选择排序(Simple Selection Sort)。 一、 简单选择排序:如上文所述。Void SelectionSort(intL[]){ For(i=1; I { J = 从i到L.length中选择最原创 2017-03-22 21:15:47 · 889 阅读 · 0 评论 -
算法:最大公共字串求解
在实际生活中我们往往需要对两个字串求最大的公共字串,这时候就需要一个算法来帮助我们完成。首先定义两个字符串x,y.再定义两个数组b,c。其中c数组的作用在于记录最大字串长度,方便进行比较找到局部最优解,b数组的作用在于输出和记录上一个公共字串的位置。每当x对应元素和y元素相等,b,c对应行列中就将进行相应操作,c数组将之前【i-1】【j-1】位置的值加1,代表最长公共子序列长度加1,b原创 2016-04-12 21:24:21 · 510 阅读 · 0 评论 -
交换排序
交换排序共包含两种算法,冒泡排序和快速排序一、冒泡排序(Bubble Sort)是一种最简单的排序算法,将第一个记录和第二个记录的关键字进行比较,若为逆序,则进行交换,然后继续向后移动进行比较,以此类推,直至第n-1个记录和第n个记录的关键字进行过比较为止,这个过程称为第一趟冒泡排序。第二趟排序对前n-1个记录进行同样操作。值得注意的是,冒泡排序的结束条件是“在一趟排序过程中没有进行过原创 2017-03-21 21:36:23 · 439 阅读 · 0 评论 -
合并排序(2-路归并排序)算法总结
合并排序是目前已知稳定的速度最快的排序算法,时间复杂度可以达到O(nlogn),所以很有必要做一次笔记进行总结,而且很多语言中排序方法采用的就是合并排序.合并排序中心思想是采用两个变量分别标记左右,left和right,在 left到left+size和 size+1到right之间不断采用分治法,相邻的不断进行比较,不断增加size的大小,最终达到剩余数字数量少于2*size为最终目的,原创 2016-03-29 20:35:58 · 1661 阅读 · 0 评论 -
pyTorch安装失败
pip 安装失败pip install torch出现Memory错误,我的电脑是64位ubuntu+4G RAM,不知道为什么会错误,在32G电脑上安装正常。建议:放弃这种安装方法。conda 安装速度慢放弃,换清华源仍没有改善。源码编译:安装cmakesudo apt install cmake从github上递归克隆。git clon...原创 2018-04-13 11:31:22 · 2954 阅读 · 1 评论