大话程序员可用的算法

Post on 10-May-2015

2.538 views 5 download

Transcript of 大话程序员可用的算法

程序员与算法

什么是算法?

什么是算法

什么是算法

什么是算法

什么是算法

什么是算法

什么是算法

把大象装进冰箱里!

什么是算法

???

把大象装进冰箱里!

什么是算法

什么是算法

把冰箱门打开

什么是算法

把冰箱门打开把大象放进去

什么是算法

把冰箱门打开把大象放进去把冰箱门关上

什么是算法

把冰箱门打开

囧,原来是这样

把大象放进去把冰箱门关上

什么是算法

什么是算法

帮用户统计这个月的净收入

No  Command  or  Program……Compile  Error…..

什么是算法

什么是算法

foreach(day  in  thismonth){          sum  +=  day.in  –  day.out;}Print(“本月净收入是”+sum+”元”)

什么是算法

foreach(day  in  thismonth){          sum  +=  day.in  –  day.out;}Print(“本月净收入是”+sum+”元”)

本月净收入是12750元

什么是算法

Donald  Knuth版定义

什么是算法

Donald  Knuth版定义算法的特征输入

输出

有穷性

确定性

可行性

什么是算法

winter版定义

什么是算法

winter版定义算法是教会一个解决不了某个问题的人解决这个问题的一系列可行步骤步骤不能无限(累死)每一步都必须可行每一步都不能有歧义

什么是算法

程序=数据结构+算法

什么是算法

程序=数据结构+算法

=>  算法=程序-­‐数据结构

什么是算法

程序=数据结构+算法

=>  算法=程序-­‐数据结构

程序里除了数据结构之外的部分就是算法

算法有什么用?

算法有什么用

算法有什么用

算法无用?

算法有什么用

算法无用?算法好吃吗?

算法有什么用?

算法有什么用?

谁在工作中用过圆的面积公式?

算法有什么用?

谁在工作中用过圆的面积公式?谁在生活中用过两个3位数乘法?

算法有什么用?

算法有什么用?

一个场景:当我们需要一个新功能时……

算法有什么用?

一个场景:当我们需要一个新功能时……程序员A:上网找”XXX如何实现”的文章

算法有什么用?

一个场景:当我们需要一个新功能时……程序员A:上网找”XXX如何实现”的文章程序员B:想清楚XXX如何实现,再上网找文档为什么大公司喜欢要会算法的程序员

算法有什么用?

一个场景:当我们需要一个新功能时……程序员A:上网找”XXX如何实现”的文章程序员B:想清楚XXX如何实现,再上网找文档为什么大公司喜欢要会算法的程序员

算法有什么用?

一个场景:当我们需要一个新功能时……程序员A:上网找”XXX如何实现”的文章程序员B:想清楚XXX如何实现,再上网找文档为什么大公司喜欢要会算法的程序员

•重复性劳动

创造性劳动

算法有什么用?

算法有什么用?

你曾经”实现”过一个功能吗?

算法有什么用?

你曾经”实现”过一个功能吗?调用别人的库!=你实现了这个功能

算法有什么用?

你曾经”实现”过一个功能吗?调用别人的库!=你实现了这个功能当”拿来主义”变成”完全拿来主义”

算法有什么用?

你曾经”实现”过一个功能吗?调用别人的库!=你实现了这个功能当”拿来主义”变成”完全拿来主义” “重新发明轮子”与”重新造轮子”

算法与问题

算法与问题

算法这门课递推法递归穷举法贪婪法分治法动态规划法迭代法

算法与问题

算法这门课递推法递归穷举法贪婪法分治法动态规划法迭代法

算法与问题

算法与问题

算法与问题

算法与问题

算法与问题

算法与问题

算法与问题

算法与问题

动态规划问题与子问题递归、数学归纳法递归方法的问题动态规划备忘录

算法与问题

算法与问题

搜索算法搜索算法问题集上的搜索深度优先,广度优先变种反向搜索两端搜索最大损耗搜索A算法从A到A*

算法与问题

智能算法模拟褪火遗传神经网禁忌搜索蚁群

算法与问题

智能算法模拟褪火遗传神经网禁忌搜索蚁群

算法和数据结构

算法和数据结构

算法和数据结构

数据结构对算法的影响一个例子:无序的数组  vs  有序的数组数据结构决定算法

排序结构排序二叉树AVL树、B+树、红黑树……

有序数组二分堆

Hash结构 A  Joke:遇到不会的面试题怎么办 Hash表 Hash树字典树

附记:我的一次面试

Q  &  A