`
文章列表
最近在实验室恰逢师兄师姐们的校招季,会有很多面试笔试题考一些基本的算法,其中较为常用的就是排序算法,当然这里指的仅仅是内部排序,处于复习的目的,回顾了一下在大二时候学习的一些排序方法,算是一个记录   内部排序大概来说有10种,分别是,选择排序,冒泡排序,插入排序,归并排序,冒泡排序,基数排序,堆排序,桶排序,计数排序,布尔排序,今天主要说一说最常用的前面五种算法,也是面试或者笔试中较为常用的   话不多少,代码奉上,基本的说明都在注释里面交代了 /* Author:luchi Date:2015/10/22 */ #include<iostream> us ...
碰到一个题目,判断一个数组是不是排序二叉树的后序遍历,所谓排序二叉树,指的是对于二叉树中的根节点比左子节点数值大,同时比右子节点数值小,例如[5,7,6,9,11,10,8] 就是一个排序二叉树的后序遍历,而[7,10,8,9]则不是   解题思维: 既然是后序遍历,则数组最后一个数值肯定是根节点,而从左到右,剩下数组元素的左侧值肯定小于根节点值,而其余的数组元素则大于根节点,例如[5,7,6,9,11,10,8]这个数组,8肯定是根节点,而从数组左侧到5~6三个数比8小,肯定是左子树,而剩下的9~10应该就是右子树,右子树应该满足每个数字都比根节点大,如果满足的话,我们再把[5,7,6 ...
机器学习在图像识别方面具有很好的效果,今天在网易云课堂黑板可老师视频中学习了一下Kmeans算法,是一种非监督类学习算法,具体步骤如下   1,选取K个点作为初始中心 2,将每个点最近的中心,形成K个簇 3,重新计算每个簇的中心 4,如果簇中心发生明显的变化或者未达到最大迭代次数,则返回到第二部     如上图,有很多点,需要将这些点分成类簇,我们的方法是   1,先随机选择三个点Cluster 2,判断所有点距离这三个点的距离,并将点加入到该Cluster中 3,重新计算每个簇的中心 4,迭代2   下面讲一个实际的问题,对于一张图片,我们想找出图片的K个主要 ...
         刚刚开始在一个视频上学习机器学习,不懂的还是很多,这也算作是学习机器学习的笔记吧 KNN算法,K nearest neighbor 最近的K个邻居,了解一个算法,先从了解一个问题开始,现在问题如下,有很多的数字图片,每个图片上面有一个数字,每个图片是28*28像素的的,灰度值从0~255,我们把每个图片看作是一个1X784的一行矩阵,因为784=28*28,矩阵上的数字大小表示该像素点的灰度值,有一些已知的图像和未知的图像,当然这里的图像都是使用矩阵表示的,现在需要通过已知图像的数字来预测未知图像的数字   KNN算法其实是比较需要预测的和已知的结果的用例之间的相似度, ...
python是一种非常强强大的脚本语言,不仅在于编程简洁,而且借鉴了很多其他语言的精妙之处,开始学python的时候听说python是对于编程初学者而言最好的语言,我现在觉得这句话一点也不意外,python确实做到了精简与强大并存,话不多说,整理一下python的超级强大的高级函数   1,reduce——递归编程的利器  问题入门:我们现在需要计算一下N的阶乘,能够想到的方法自然是递归,当然为了介绍reduce,我们肯定是不使用我们熟悉的递归,让我们来看一下reduce的定义:   reduce(function, sequence[, initial])   其中,func ...
python提供了和java类似的包和模块的引用,目的也是为了提高代码的复用性,这里主要总结一下包和模块的引入问题   python的包和模块引入和Java遵循类似的规则,在PYTHONPATH指定的路径找, 1,引入系统模块 在python中,python的系统模块可以直接引用,因为在装python环境的时候已经指定了相对应的路径,如引用 : import string 2,引入自定义的模块 在自定义自定义模块的时候,如果引入当前目录的模块的时候是不需要加入特殊的约束的,直接import即可,如 当前在test1.py ,test2.py和test1.py在一个目录下,所以直接 ...
Python的迭代器使用起来很方便,也比较实用,今天看一下几种Python迭代器的使用方法方法 第一种: list=["hello","world","china"] it=iter(list) while True: try: m=next(it) print(m) except StopIteration: break  第二种: list=["hello","world","ch ...
今天学习了一下python的基础面向对象知识,在继承中发现了一些有趣的问题和方法,做个笔记mark一下 首先看一段简单的继承代码 class my_class: def __init__(self): print "new object" self.name="myclass" def setName(self,name): self.name=name def printName(self): print self.name class my_n ...
   最近有一个任务是将项目中的一些资源代码转化成是可配置的,因此,心里想到了使用XML文件来配置,虽然最后使用了properties来配置,但是突然想自己读取一把xml文件,并且不借助jdom之类的jar包来解析     想到xml配置文件是一个循环结构,因此最开始想使用递归方法,但是到后来觉得递归找子项不太好找(不想记录尖括号位置那种写法),后来觉得用数据结构里面建立树的写法来建立"xml 树",我觉得这种思路是对的,因为即使是html标准的文档也会使用domtree的概念,而且一些解析xml的jar 包最后得到的也是近似是树的结构。   我只是做了一个 ...
Java的并发编程模型中,有个Fork-Join框架,目的是将大的任务分解成小的任务进行计算,然后再把每个小任务的计算结果汇总。 Fork / Join 框架提供了两个可供继承的子类 1,RecursiveAction 用以分解没有计算结果的任务 2,RecursiveTask    用以分解有计算结果的任务   接下来计算一个1加到100的程序,体会一下Fork/Join框架的使用   首先定义一个任务类CountTask类,因为是要计算结果,因此继承RecursiveTask类,主要是实现其compute方法,这里设置的阀值THRESHOLD值为10,表示每个任务计算的加数的 ...
     原文地址:http://www.cnblogs.com/liuling/archive/2013/05/05/intAndInteger.html   如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null。但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的,估计更多的人会头脑一片混乱。所以我对它们进行了总结,希望对大家有帮助。 package com.test; /** ...
因为刚开始开博客并没有什么浏览量,所以心中一时想着怎么变成增加自己的浏览量,于是参考了网上的例子写了个程序,主要是用java访问指定的网页,当然只是一时兴起,没有恶意。 我开始只是采用简单的URL访问页面,但 ...
   在讨论Java的锁的时候,有一个概念很重要,那就是同步器,同步器可以想象成一种互斥量,当一个线程在进入临界区之前先要获得互斥量,同样,在线程获得同步状态之前也是需要获取到同步器。今天看到《java并发编程的艺术》第五章的时候觉得蛮有收获,所以这一篇算是整理下看书思路。   首先,我们来看一下Lock的接口   public interface Lock { void lock(); boolean tryLock(); void unlock(); Condition newCondition(); }  这个接口只是提供了 ...
在java的并发编程之中,有几个比较重要的模式,其中notify-wait的模式显得很重要,因为他是经典的生产者-消费者模式实现的基础,而在生产者-消费者模式上,又可以演变出很多的设计方法,比如java的线程池就是典型的生产者消费者模式,今天就来说一下notify-wait 首先说一下wait在notify之后的的执行逻辑          在Java对象中,有两种池        琐池-----------------------synchronized        等待池---------------------wait(),notify(),notifyAll()       ...

笔试题小解

        最近碰到一个笔试题,大意是从给定的无序数组中选取几个数字使其和为给定的数字,下面以一个数组长为10的整型数组为例,选出其中四个数字之和为10。         算法使用C++编写,因为来的比较快,Java表达算法不是很给力感觉,代码如下         #include<iostream> #define total 4 //所需要选取出来的个数 #define arrayLength 10 //数组长度 using namespace std; void showResult(int a[]); int a[arrayLength] ...
Global site tag (gtag.js) - Google Analytics