韩顺平老师算法连载1(转载)
来源:互联网 发布:王凯整容了吗 知乎 编辑:程序博客网 时间:2024/05/22 17:47
文西马龙:http://blog.csdn.net/wenximalong/
课程说明:算法是程序的灵魂,为什么有些网站能够在高并发,和海量吞吐情况下依然坚如磐石,大家可能会说: 网站使用了服务器集群技术、数据库读写分离和缓存技术(比如memcahced和redis等),那如果我再深入的问一句,这些优化技术又是怎样被那些天才的技术高手设计出来的呢? 我在上大学的时候就在想,究竟是什么让不同的人写出的代码从功能看是一样的,但从运行效率上却有天壤之别, 就拿以前在软件公司工作的实际经历来说吧, 我是做服务器的,环境是UNIX系统,功能是要支持上千万人同时在线,并保证数据传输的稳定, 在服务器上线前,做过内测,一切OK,可实际上线后,服务器就支撑不住了, 公司的CTO(首任sina技术总监) 花了3天时间对我的代码进行优化,再次上线,坚如磐石。那一瞬间,我认识到程序是有灵魂的,就是算法。如果你不想永远都是一个代码工人,不想当孬种程序员,那就花点时间来研究一下算法吧!
本次公开课为六天,着重讲解算法的基石-数据结构。
为照顾更多的朋友,本次公开课分两个阶段, 每个阶段相对独立,讲解的顺序也考虑到知识的先后顺序,你可以选择自己感兴趣的课程来收看。学习完后,你可以处理编程中比较复杂或是比较变态的需求,让你快速掌握常见算法,建立编程思想。
对算法的重要性,举的一些例子:
韩老师在工作中遇到的一个问题,有多个人登录的时候,我们怎么去处里上千万人登录的时候,用什么方案去处里,用结构体来解决...
图片大,在新窗口中打开图片,观看完整图片。
数学对我们编程来说,重不重要?
看你站在什么样的层次来说,如果你应用程序开发,对数学要求不高
但是,如果你开发系统软件,比如(搜索/识别软件[图像,语言识别]/操作系统...)对数学要求高
建模...大量数学模型
我是学习C++的,请问对QT和MFC的看法,前景什么的
记住:打好基础,大有可为!
学习IT,不管是java,php,c#,对学历要求不高。
学历不是问题,能力是问题
★什么是算法?
程序=数据结构+算法
说:我们使用数据结构(int->数组、链表、队列、二叉树、散列...)+一些逻辑(if,forwhile...)=完成某个任务
思考:为什么有些网站可以支持千万以上人来访问?点击科技和新浪工作。(产品竟开协同软件|新浪邮件)->问题?我在公司内部测试一切ok!登录时候解决办法:首任sinaCTO->三天优化。结论:程序是有灵魂,就是算法
百度/google/腾讯/淘宝=>如果不想当一个coder,你一定看算法。[设计模式]
★算法有什么用,在什么地方用?
提出几个实际的问题?
<?php
$str="abc,ytkhello,abc,北京";
//echo str_replace('abc','韩顺平',$str);
?>
你能不能做一个字符串这样的一个数据结构,可以做成:
试写出用单链表表示的字符串及字符串结点类的定义,并依次实现它的构造函数、以及计算串长度,串赋值、判断两串相等,求字串,两串连接、求字串在串中位置等7个成员函数。
要求每个字符串结点只存放一个字符。
再举一个例子,说明数据结构的重要性
五子棋里有很多关于算法的
1.下子算法
2.判断胜负算法
3.悔棋算法
4.存盘与读取算法
5.其他算法
看几个实际编程中遇到的问题
约瑟夫问题(丢手帕问题)[最常见的一个笔试题]
1.Josephu问题
Josephu问题为:设编号为1,2,...n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。
提示:用一个不带头结点的循环链表来处理Josephu问题:先构成一个有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点从链表中删除,然后再从被删除结点的下一个结点又从1开始计数,直到最后一个结点从链表中删除,算法结束。
使用环形链表解决上面的问题
其它算法问题:
邮差问题
最短路径问题
汉诺塔
八皇后问题
汉诺塔,是一个经典试题(递归问题)
总而言之,算法是很重要,是程序的灵魂。
- 韩顺平老师算法连载1(转载)
- 韩顺平老师算法连载2(转载)
- 韩顺平老师算法连载3(转载)
- 韩顺平老师算法连载4(转载)
- 韩顺平老师算法连载6(转载)
- 韩顺平老师算法连载7(转载)
- 韩顺平老师算法连载8(转载)
- 韩顺平老师算法连载9(转载)
- 韩顺平老师算法连载10(转载)
- 韩顺平老师算法连载11(转载)
- 韩顺平老师算法连载12(转载)
- 一男老师每日百词转载+连载(1)
- 韩顺平老师 Mysql优化 笔记
- Linux学习笔记(观看韩顺平老师Linux视频的总结)
- 韩顺平老师购物车部分源码心得(批量提交部分,订单表)
- 如何把CSS中的 加到HTML(来自韩顺平老师视频)
- 一男老师每日百词转载+连载(2)
- 一男老师每日百词转载+连载(3)
- android 4.2 隐藏/显示 navigation bar, 实现全屏显示
- ないで与なくて的异同
- oracle impdp的table_exists_action详解
- oracle相关操作笔记
- maven 请使用 -source 5 或更高版本以启用泛型 的错误解决
- 韩顺平老师算法连载1(转载)
- pull解析xml文件
- 模2除法
- 75.二叉树两个结点的最低共同父结点
- How to generate gcc debug symbol outside the build target?
- 日语“比较”句型
- 使用 Socket 通信实现 FTP 客户端程序
- deleteRowsAtIndexPaths的NSInternalInconsistencyException异常
- 使用gdbserver远程调试