
算法与数据结构
HarbinZJU
这个作者很懒,什么都没留下…
展开
-
阿里巴巴面试算法题目:有无序的实数列V[N],要求求里面大小相邻的实数的差的最大值,关键是要求线性空间和线性时间
题目:有无序的实数列V[N],要求求里面大小相邻的实数的差的最大值,关键是要求线性空间和线性时间用基于桶排序的方式。 注意到,最后只需要求间隔的最大值,所以任何间隔小于bar= (max - min)/(N-1) 的值都可以不计。 这样,首先求随机数组中的max , min 这些都是线性时间的 然后,分配从[min, max]间分配(N-1)个桶,每个桶是一个有序实数对,(a,b) 将所有数往桶里塞,把欲塞进去的数记为x,如果桶里本身没有数,那么a=b=x 如果x>b,那么b=x转载 2010-08-25 22:36:00 · 3561 阅读 · 1 评论 -
微软的22道数据结构算法面试题(含答案)
1、反转一个链表。循环算法。 1 List reverse(List l) { 2 if(!l) return l; 3 list cur = l.next; 4 list pre = l; 5 list转载 2010-08-26 00:05:00 · 1335 阅读 · 0 评论 -
面试常考的常用数据结构与算法
数据结构与算法,这个部分的内容其实是十分的庞大,要想都覆盖到不太容易。在校学习阶段我们可能需要对每种结构,每种算法都学习,但是找工作笔试或者面试的时候,要在很短的时间内考察一个人这方面的能力,把每种结构和算法都问一遍不太现实。所以,实际的情况是,企业一般考察一些看起来很基本的概念和算法,或者是一些变形,然后让你去实现。也许看起来简单,但是如果真让你在纸上或者是计算机上快速地完成一个算法,并且设计测转载 2010-08-27 02:02:00 · 6650 阅读 · 0 评论 -
冒泡排序、选择排序、插入排序 算法实现(C++)
这三种排序方法都是O(N2)的,概念和实现如下。 冒泡排序:通过N-1次对剩余未排序元素中最大(小)元素的上浮来实现排序,上浮过程通过交换相邻元素实现。 templatevoid BubbleSort(ElementType A[], int N){ ElementType Temp; for (int i=0; i { fo原创 2010-08-27 14:54:00 · 4865 阅读 · 1 评论 -
使用 C++ 处理 JSON 数据交换格式
一、摘要 JSON 的全称为:JavaScript Object Notation,顾名思义,JSON 是用于标记 Javascript 对象的,JSON 官方的解释为:JSON 是一种轻量级的数据传输格式。本文并不详细介绍 JSON 本身的细节,旨在讨转载 2011-07-06 13:19:00 · 1383 阅读 · 0 评论 -
五子棋的核心算法
五子棋是一种受大众广泛喜爱的游戏,其规则简单,变化多端,非常富有趣味性和消遣性。这里设计和实现了一个人机对下的五子棋程序,采用了博弈树的方法,应用了剪枝和最大最小树原理进行搜索发现最好的下子位置。介绍五子棋程序的数据结构、评分规则、胜负判断方法和搜索算法过程。一、相关的数据结构 关于盘面情况的表示,以链表形式表示当前盘面的情况,目的是可以允许用户进行悔棋、回退等操作。 1. CList StepList; 2. //其中Step结构的表示为: 3.转载 2010-08-26 16:09:00 · 1715 阅读 · 0 评论 -
阿里巴巴面试算法题目:25匹赛马,5个跑道,也就是说每次有5匹马可以同时比赛。问最少比赛多少次可以知道跑得最快的5匹马
考虑最坏的情况,那么有一个比赛9次的可行解:25匹马分5组,每组比一次。然后5个组的冠军再比一次。共进行了6次比赛,结果如下:下载 (2.03 KB)2010-2-4 18:06其中,红色马是第一名;绿色马有机会得第二名;浅蓝色马有机会得第三名;深蓝色马有机会得第四名;紫色马有机会得第五名。下一场是2匹绿色马和3匹浅蓝色马比赛,可决出第二名和第三名。例如,一种可能的结果如下:下载 (2.19 KB)2010-2-4 18:06那么上述结果可以写成:下载原创 2010-08-25 23:31:00 · 29550 阅读 · 17 评论 -
200行C代码实现简单线程池【Linux】
原以为实现一个线程池一定是个规模和难度都是超大的项目。这阵子有些闲空,就复习了一下pthreads的知识。光理论复习不够的,还得上手写点东西才行。这就想着实现一个线程池试试看吧。没想到200行不到就出来了一个可用的东西。 基本想法是这样的: 1、预创建的线程通过mutex休眠在线程池中。这样,通过unlock该mutex就可以唤醒该线程了; 2、出于简单性的目标,一个线程池内的所有线程的属性都是相同的。这个属性在创建线程池可以指定; 3、一般来讲,线程转载 2010-08-26 16:06:00 · 1871 阅读 · 0 评论 -
阿里巴巴面试算法题:有一个函数int getNum(),每运行一次可以从一个数组V[N]里面取出一个数,N未知,当数取完的时候,函数返回NULL。现在要求写一个函数int get(),这个函数运行一次可以从V[N]里随机取出一个数,而这个数必须是符合1/N
相关讨论 http://topic.youkuaiyun.com/u/20091024/12/989417aa-60e9-45d1-a96f-a623695fc6d7.html转载 2010-08-25 23:54:00 · 2891 阅读 · 0 评论 -
详细解说 STL 排序(Sort)
0前言: STL,为什么你必须掌握对于程序员来说,数据结构是必修的一门课。从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来。幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思去考虑其算法原理,也不用再去验证其准确性。不过,等你开始应用计算机语言来工作的时候,你会发现,面对不同的需求你需要一次又一次去用代码重复实现这些已转载 2010-08-25 09:01:00 · 1301 阅读 · 0 评论