zoukankan      html  css  js  c++  java
  • 我们曾经学过 “程序=算法+数据结构 ” 呵呵,有点怀念

      毕业一年了,在公司里做了些一般应用,这些应用程序对算法的要求是很低的。如今是面向对象设计大行其道的局面,能看到谈算法的博文其实不是很多,呵呵。当然本文也不是为了教说某个具体算法、或者挑起面向对象与算法之类的争端(其实两者没矛盾的,其实我很讨厌口水战)而写的。只是偶然在网上看到了一篇“The Most Important Algorithms”,突然怀念起了刚刚学编程时那句话:“程序=算法+数据结构”。以前那单纯的编写代码的日子也是相当的幸福啊,幸福的就像第一次看见自己写的“Hello World”在屏幕上显示一般。

      大学时要不是接触ACM(ACM/ICPC)编程,我对算法也几乎是没有什么研究的。每次看到AC 就像第一次看到了 “hello world”一样兴奋。罗嗦的怀旧了一把,该正式说说写本文的目的了,其实目的很简单——就是因为看了那篇“重要的算法”文章里有几个自己用过的算法,决定在这里罗列出来。如果以后真的彻底忘记了,还可以按照这个列表温故一下(列表不定期维护)。

      废话不多说,这里就列举算法的名称,具体解释和应用,大家可以网上查查。等空闲时我也会按照目录编写些例子上来(也可能不写,不敢在众大牛面前班门弄斧)。

    1. 贪心算法
    2. 迪杰斯特拉算法
    3. 深度遍历
    4. 广度遍历
    5. 最小生成树—prime算法
    6. 二分查找
    7. 动态规划
    8. 哈希
    9. 并查集——最小生成树之kruskal算法
    10. 字典树(这应该是个数据结构 ^_^)
    11. 打表法求素数
    12. 递推求解(这应该是个方法、例如求 Fibonacci
    13. ..............>_<.......还有一些想不起来叫什么了。。。。

      这些是比较有名的算法了,有些算法思想是交错的,各自的推导方法上有交集。其实在很多时候算法是要根据具体问题进行推导或进行数学的建模才能设计出来的。现在想想ACM的每一道题目都是已经明确好了具体需求(还不会变)、规划好模块、给出了众多并且覆盖率极高的测试用例的编程。

      再唠叨几句,特别怀念大学里的日子!单纯的编程都那么开心。在学校ACM竞赛队了也是挺开心的(虽然学校一心只想要名誉)。稍稍自吹一下,我们是校的初代竞赛队(其实之前也有组织参加但是没有真正成了校内培训的队伍),第一次正式比赛,也以全部队伍都获奖的佳绩庆贺队伍挂牌成立(真的!学校真的给了我们个牌,偶当时带两位大一新生也真是幸苦啊,偶明明也是新手来着)。现在工作很不景气,拿的工资少的可怜,想自己弄点网络应用嘛!又遇到网络严打,网站还没起来,服务器却被封了。“生活的压力、生命的尊严、到底哪一个重要”,在公司里的编程已经出现了那么一丁点的不愉快了(被迫接过经理一时兴起建立的项目、也被迫因其兴头已过,项目流产。。。。)

      我还是喜欢编程!我想像从事艺术创作那样编写程序,希望自己的程序能有灵魂。

  • 相关阅读:
    vue中mixins(混入)的使用
    js实现淘宝轮播图放大镜效果
    vue中的provide和inject
    vue自定义过滤器
    vue自定义指令
    HTTP和HTTPS详解
    可靠的TCP连接为何是三次握手和四次挥手
    跟着动画来学习TCP三次握手和四次挥手
    简单了解TCP/IP与HTTP
    网络协议
  • 原文地址:https://www.cnblogs.com/keyindex/p/1784492.html
Copyright © 2011-2022 走看看