前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一周极客热文:程序员必须知道的10大基础实用算法及其讲解

一周极客热文:程序员必须知道的10大基础实用算法及其讲解

作者头像
钱曙光
发布2018-02-02 12:09:49
8090
发布2018-02-02 12:09:49
举报
文章被收录于专栏:钱曙光的专栏钱曙光的专栏

程序员必须知道的10大基础实用算法及其讲解,包括:

  1. 快速排序算法;
  2. 堆排序算法(Heapsort):是指利用堆这种数据结构所设计的一种排序算法;
  3. 归并排序(Merge sort,中国台湾译作:合并排序):是建立在归并操作上的一种有效的排序算法;
  4. 二分查找(线性查找算法):是一种在有序数组中查找某一特定元素的搜索算法;
  5. BFPRT算法解决的问题十分经典,即从某n个元素的序列中选出第k大(第k小)的元素,通过巧妙的分析,BFPRT可以保证在最坏情况下仍为线性时间复杂度;
  6. 深度优先搜索算法(Depth-First-Search):是搜索算法的一种;
  7. 广度优先搜索算法(Breadth-First-Search):是一种图形搜索算法;
  8. 戴克斯特拉算法(Dijkstra’s algorithm);
  9. 动态规划算法(Dynamic programming);
  10. 朴素贝叶斯分类算法是一种基于贝叶斯定理的简单概率分类算法。

上面的这篇文章为本周的热门文章,有着不错的评论。具体的算法步骤详情请移步原文阅读并可参与讨论。

一、 Eclipse 4.4 将于 6 月 25 日发布,代号 Luna

代号为 Luna 的下一个 Eclipse 的主要版本 4.4 将于 6月25日 发布。新版本值得关注的特性包括:

  • 完全支持 Java™ 8
  • 提供全新的黑色主题,默认显示行号,允许隐藏 quick access 工具条
  • Sirius allows architects to easily create their own graphical modeling workbenches by leveraging the Eclipse modeling technologies, including Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
  • Equinox includes a full implementation of the R6 Core Framework as well as several compendium service implementations
  • ECF's implementation of OSGi Remote Service/Remote Service Admin standard has been enhanced to use Java 8's CompleteableFuture for asynchronous remote services.
  • Code Recommenders integrates the Snipmatch code snippet search engine and adds the ability to easily contribute new snippets to a shared repository.
  • The new QVTi debugger extends the new OCL debugger.

二、 Java 8新特性终极指南

Java 8已经公布有一段时间了,种种迹象表明Java 8是一个有重大改变的发行版。文章把所有Java 8的重要特性收集整理成一篇单独的文章,主要有以下几个方面:

  • Java语言的新特性——Lambdas表达式与Functional接口、接口的默认与静态方法、方法引用、重复注解、更好的类型推测机制、扩展注解的支持
  • Java编译器的新特性——参数名字
  • Java 类库的新特性——Optional、Streams、Date/Time API (JSR 310)、JavaScript引擎Nashorn、Base64、并行(parallel)数组、并发(Concurrency)
  • 新增的Java工具——Nashorn引擎: jjs、类依赖分析器: jdeps
  • Java虚拟机(JVM)的新特性

三、程序员长期保持身心健康的几点建议

  1. 要学会走开
  2. 在家少编程
  3. 少叫外卖,中午出去吃
  4. 有一个或几个非技术的兴趣爱好,或者体育锻炼项目
  5. 休假
  6. 最最最最关键,要有一个妹子

四、 程序员自我提高的几点建议 很实诚

中国程序员的成长是与其学习环境相关,据统计,现时做计算机软件开发的人员65%是大专及本科学历,15%是来自于其他的培训机构。可见一个开发人员大致的学习经历和初步经验来自于大学。下面是针对程序员自我提高的几点建议:

  1. 提高文档编写能力
  2. 养成好的编码规范和编码习惯
  3. 提高对软件需求的理解
  4. 复用性和模块化思想
  5. 锻炼自己的测试能力
  6. 问题是最好的学习机会

五、 Java 8中几个不易察觉的错误

  • 不小心重用了流
  • 不小心创建了一个“无限”流
  • 不小心创建了一个“隐藏的”无限流
  • 不小心创建了一个”隐藏”的并行无限流
  • 操作的顺序错误
  • 使用过滤器来遍历文件系统
  • 修改流内部的集合
  • 忘了去消费流
  • 并行流死锁

引入了流和函数式编程之后,我们开始会碰到许多新的难以发现的BUG。这些BUG很难避免,除非你见过并且还时刻保持警惕。你必须去考虑操作的顺序,还得注意流是不是无限的。

流是一个非常强大的工具,但也是一个首先得去熟练掌握的工具。

六、 Google I/O 2014大会很有可能发布的10大惊喜

一年一度的谷歌 Google I/O 开发者年会将在本月的 25 日和 26 日在美国的旧金山举行,今年的 Google I/O 大会又将带给大家什么惊喜呢?请看:

  • Nexus 8
  • 安卓5.0
  • 谷歌眼镜正式上市
  • Android Wear
  • Silver项目
  • Project Ara模块化手机
  • Android车载系统
  • Google Fit服务
  • Nest——Nest或许会带来修复另一款烟雾探测器Protect的相关消息
  • Google Fiber

上期回顾:

一周极客热文:8张图理解Java

一周极客热文由极客头条主编根据文章的PV、顶的数量和评论数,选出一定数量的热门文章,在周一准时呈现给大家。欢迎大家踊跃发帖,相关要求请点这里

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-06-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、 Eclipse 4.4 将于 6 月 25 日发布,代号 Luna
  • 二、 Java 8新特性终极指南
  • 三、程序员长期保持身心健康的几点建议
  • 四、 程序员自我提高的几点建议 很实诚
  • 五、 Java 8中几个不易察觉的错误
  • 六、 Google I/O 2014大会很有可能发布的10大惊喜
  • 上期回顾:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档