返回 登录
0

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

  http://img.my.csdn.net/uploads/201406/23/1403504137_5831.gif

程序员必须知道的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、顶的数量和评论数,选出一定数量的热门文章,在周一准时呈现给大家。欢迎大家踊跃发帖,相关要求请点这里

关于我们:

极客头条是CSDN推出的精品内容发掘平台,在这里可以发现、分享值得你关注的极客新闻。

如果你看到优秀的文章想分享,请点这里:【分享到极客头条】,或者直接在新浪微博@极客头条

评论