Apollo Connecting the World

Diligence and Intelligence

Posts Tagged ‘Algorithms

[zz]计算机算法和竞赛教材介绍

leave a comment »

现在公认最好的入门书籍是“白书”《算法竞赛入门经典》(建议每位队员都应该要买这本书),之后应该就是《算法导论》和《算法艺术与信息学竞赛》了,另外《组合数学》和《离散数学》也是值得学习的,这个对训练逻辑思维、数学思维有很大的好处,比如东欧强队都非常注重这方面的训练,而国内注重的是算法训练。

关于题目的好书有:《ACM国际大学生程序设计竞赛题解(1) 》《ACM国际大学生程序设计竞赛题解(2)》《ACM国际大学生程序设计竞赛亚洲区预选赛真题题解》

关于OJ做题的好书有《挑战编程:程序设计竞赛训练手册》,另外一本国内的《程序设计导引及在线实践》

以下来自网络转载:

acm算法书籍收藏推荐

我常感叹到,学计算机的人是幸福的,因为在这个领域中有如此多的通俗易懂(相对来说)的经典好书,你需要做的只是坚持把它们一本一本读下去而已。学力学就没有这样的好事了(抱怨一下),除了论文就是论文,满篇公式,晦涩坚深,真不是给人看的(虽然我也没看过几篇)。在这里列出一些我看过或者准备看的算法书籍,以供参考。

Read the rest of this entry »

Advertisements

Written by apollozhao

2013/02/19 at 14:07

[zz]常用算法经典代码(C++版)

leave a comment »

常用算法经典代码(C++版)

一、快速排序

void qsort(int x,int y) //待排序的数据存放在a[1]..a[n]数组中

{int h=x,r=y;

int m=a[(x+y)>>1]; //取中间的那个位置的值

Read the rest of this entry »

Written by apollozhao

2012/10/24 at 04:05

[zz]数据结构+算法面试100题~~~摘自CSDN,作者July

with one comment

Also see these 2 links:

https://apollozhao.wordpress.com/2011/05/20/zz%E5%90%84%E5%A4%A7%E5%85%AC%E5%8F%B8%EF%BC%88google%EF%BC%8Cmicrosoft%EF%BC%8Cbaidu%EF%BC%8C-microsoft-research-asia-etc-%EF%BC%89%E5%AE%9E%E4%B9%A0%E7%94%9F%E9%9D%A2%E8%AF%95%E9%A2%98%E6%80%BB/

https://apollozhao.wordpress.com/2012/03/31/zz%E9%87%8D%E7%A3%85%E5%88%86%E4%BA%AB%EF%BC%9A%E5%BE%AE%E8%BD%AF%E7%AD%89%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E7%AE%97%E6%B3%95%E9%9D%A2%E8%AF%95100%E9%A2%98%E5%85%A8%E9%83%A8%E7%AD%94%E6%A1%88/

This post has something more at the end.

——

1.把二元查找树转变成排序的双向链表(树)
题目:
输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。
要求不能创建任何新的结点,只调整指针的指向。
10
/ /
6  14
/ / / /
4  8 12 16
转换成双向链表
4=6=8=10=12=14=16。

首先我们定义的二元查找树 节点的数据结构如下:
struct BSTreeNode
{
int m_nValue; // value of node
BSTreeNode *m_pLeft; // left child of node
BSTreeNode *m_pRight; // right child of node
};
2.设计包含min函数的栈(栈)
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。
要求函数min、push以及pop的时间复杂度都是O(1)。
3.求子数组的最大和(数组)
题目:
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。

Read the rest of this entry »

[zz]73本免费的、语言无关的优秀的编程书籍

leave a comment »

本文源自Stackoverflow中的一个帖子汇总了73本免费的、语言无关的优秀的编程书籍,业界对这些书籍的评价都很高,非常值得一看。

这些书籍中有HTML格式的,也有PDF格式的,当然,都是英文版的。不过,部分书籍的中文译本已经出现在网上,有兴趣的同学可以Google一下。

Read the rest of this entry »

Written by apollozhao

2012/07/12 at 23:36

[zz]有关如何入门ACM

leave a comment »

一些题外话

首先就是我为什么要写这么一篇日志。原因很简单,就是因为前几天有个想起步做 ACM人很诚恳的问我该如何入门。其实就现在而言,我并不是很想和人再去讨论这样的话题,特别是当我发现我有很多的东西要学的时候,我实在是不想花太多的 时间在这种问题上。但是我当年也是纯凭热情搞ACM过来的,实在是不忍心打击一个同样有着满腔热情的起步者。所以干脆就多花点时间,总结一下我的一些观点 和看法,以后再让人问起这个问题的时候,也好不用再重复什么了。

其次,我在这篇文章中并不打算探讨特别细节的问题,比如说如果某些人想从中 得到诸如“该看哪本书入门比较好”或者“动态规划、搜索、图论该怎么学”之类问题的答案,恐怕要让您失望了。我觉得书和方法都是因人而异,对自己最好的方 法需要靠自己去摸索,抄别人是抄不来的。更何况当初我起步的时候也几乎是一个人单干,没什么人推荐好书之类,都是搜到哪本书里有我想看的东西然后就抓过来 看,感觉不行就再换一本。很多众口相传的好书,我第一次看的时候,其实里面绝大部分的内容我已经都学过了,所以这种书籍对初学者的作用,我本人并没有切身 的体会,而且也没有过相关的教学经验,所以不敢随意评价。

Read the rest of this entry »

Written by apollozhao

2012/06/15 at 04:00

Posted in Computer Science, Study

Tagged with , , , ,

[zz]程序员面试、算法研究、编程艺术、红黑树4大系列集锦与总结

leave a comment »

博主:

请参考这些链接:

http://blog.csdn.net/v_july_v/article/details/6543438
http://blog.csdn.net/v_JULY_v/article/details/6015165
http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html

 

————————————-

作者:July–结构之法算法之道blog之博主。
时间:2010年10月-2011年6月。
出处:http://blog.csdn.net/v_JULY_v
声明:版权所有,侵犯必究。

前言
开博已过8个月,回首这8个月,发现自己在本blog上着实花费了巨大的时间与精力,写的东西可能也够几本书的内容了。希望我真真正正的为读者提供了实实在在的价值与帮助。

Read the rest of this entry »

Written by apollozhao

2012/02/24 at 00:51

[zz]知其所以然(三):为什么算法这么难?-刘未鹏

leave a comment »

from: http://blog.renren.com/blog/322702581/738734136

作者:刘未鹏  原帖地址  《编程之美》微博

不知不觉《知其所以然》系列竟然也写到第三篇了,虽然前面两篇也说了不少,但是总觉得还有东西没有说“透”,或者说没有说“好”。所以这篇试图从不同的角度用更好的例子来继续深入阐述。(感谢silwile对本文的review和意见)


广大码农同学们大多都有个共识,认为算法是个硬骨头,很难啃,悲剧的是啃完了还未必有用——除了面试的时候。实际工程中一般都是用现成的模块,一般只需了解算法的目的和时空复杂度即可。

不过话说回来,面试的时候面算法,包括面项目中几乎不大可能用到的算法,其实并不能说是毫无道理的。算法往往是对学习和理解能力的一块试金石,难的都能掌握,往往容易的事情不在话下。志于高者得于中。反之则不成立。另一方面,虽说教科书算法大多数都是那些即便用到也是直接拿模块用的,但不幸的是,我们这群搬砖头的有时候还非得做些发明家的事情:要么是得把算法当白盒加以改进以满足手头的特定需求;要么干脆就是要发明轮子。所以,虽说面试的算法本身未必用得到,但熟悉各种算法的人通常更可能熟悉算法的思想,从而更可能具备这里说的两种能力。

那么,为什么说算法很难呢?这个问题只有两种可能的原因:

Read the rest of this entry »

Written by apollozhao

2011/07/15 at 09:55