分类: 编程技术

最快最简单的排序算法:桶排序

最快最简单的排序算法:桶排序

在我们生活的这个世界中到处都是被排序过的。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东西都需要排序,可以说排序是无处不在。现在我们举个具体的例子来介绍一下排序算法。

独立开发者:详解3天完成的手游研发过程

独立开发者:详解3天完成的手游研发过程

首先,这款游戏是 3 天做出来的,如果你不擅长的话,可能很难理解。需要先说明的是,这个博客不是教大家如何编程、如何使用 Unity,也不是教大家如何使用 Photoshop 或者 Illustrator 的。

给Python初学者的一些技巧

给Python初学者的一些技巧

以下是我近些年收集的一些Python实用技巧和工具,希望能对你有所帮助。

iOS并发(concurrency)概念浅析

iOS并发(concurrency)概念浅析

在进行iOS开发过程中,我们常会遇到网络请求、复杂计算、数据存取等比较耗时的操作,如果处理不合理,将对APP的流畅度产生较 大影响。除了优化APP架构,并发(concurrency)是一个常用且较好的解决方法,但并发涉及串行、并发、并行、同步、异步、多线程、GCD、 NSOperation和NSOperationQueue等诸多容易混淆的概念,为求概念清晰明了,还请茗茶静坐,听我徐徐道来。

浅谈 Java 中 MongoDB NoSQL数据库使用指南

浅谈 Java 中 MongoDB NoSQL数据库使用指南

MongoDB是当今非常流行的一款NoSQL数据库,本文介绍如何使用MongoDB的Java驱动来操作MongoDB。

加快Android编译速度的一些技巧

加快Android编译速度的一些技巧

之前加快Android编译的工具相对较少,其中最具有代表性的开源项目当属FaceBook的Buck和 mmin18的LayoutCast,除此之外还有JRebel 和 Jimulabs。不过前两天google宣布推出Instant Run加快Android 编译速度,相信对其他的工具来说都是一次冲击,这也是写这篇文章的动机。

你确实应该学习并使用的 10 个 C# 特性

你确实应该学习并使用的 10 个 C# 特性

如果使用得当的话,yield 会变得非常强大。它使得你延迟生成序列中的对象,比如当系统不需要枚举整个集合的时候,可以按需停止

Twitter是如何做到每秒处理3000张图片的?

Twitter是如何做到每秒处理3000张图片的?

如今,Twitter每秒可以创建并保存3000张(20GB)的图片。2015年,Twitter甚至从对媒体存储策略的优化中节省出了600万美元。

如何选择 HTML5 游戏引擎

如何选择 HTML5 游戏引擎

原生手游市场已是红海,腾讯、网易等寡头独霸天下,H5游戏市场或将成为下一个风口。据笔者所知,很多H5游戏开发团队由于选择引擎不慎导致项目甚至团队夭折。如何选择适合团队和项目的引擎,笔者通过学习和项目实践,总结微薄经验,供大家参考,非技术人员也可以将本篇内容作为引擎选择的重要关注点。

编写高质量的代码——从命名入手

编写高质量的代码——从命名入手

不知道大家有没有这种感觉,查看一些开源项目,如Spring、Apache Common等源码是一件赏心悦目的事情?

知道这20个正则表达式,能让你少写1,000行代码

知道这20个正则表达式,能让你少写1,000行代码

正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。下面是技匠整理的,在前端开发中经常使用到的20个正则表达式。

《神秘的程序员们》漫画44:一封邮件引发的血案

《神秘的程序员们》漫画44:一封邮件引发的血案

《神秘的程序员们》漫画44:一封邮件引发的血案

不做代码审查会怎样?

不做代码审查会怎样?

在真正的实施过程中,很多情况下并不像想象的那般美好,经常出现例如有些同学由于跟不上其他人讲解的速度(毕竟不是自己写的)或是没有相关的上下文(例如刚加入项目的新成员),或是由于提交没有被很好的切分和组织,导致整个过程都处于游离状态(就像下图中的我……毫无摆拍痕迹),而代码审查的效果也打了折扣,渐渐的变成了一个流程,一个过场, 一个习惯。

面试中的排序算法总结

面试中的排序算法总结

查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。

如何用50行代码开发出一个人工智能机器人

如何用50行代码开发出一个人工智能机器人

这年头,机器人程序(bot)是新的应用程序,机器人程序商店就是新的应用程序商店。结合人工智能,机器人程序变得功能日益强大,而且在学习新的本领。我在本文中将介绍如何使用IBM Watson API,用短短50行代码,编写出一个Telegram语音转换成文本的机器人程序。

非常全面的Linux知识点总结

非常全面的Linux知识点总结

Linux博大精深。我只在此讨论一些我对线上Linux机器维护人员的基本需求,比如装机,加硬盘,配网络。只讨论CentOS 6,或者类似的RHEL,当然Ubuntu也可以此类推,但是一些新特性不予讨论,因为我不懂,比如CentOS 7的xfs不予讨论,并不是说xfs不好,而是以目前我的Linux水平需要更新很多xfs的知识,驾驭需要时间。CentOS 7将ifconfig,netstat等原来常用的命令也干掉了,用ip,lsof替换是更加好的工具,但是大部分的线上机器都应该还没有更新到CentOS 7。下面我们以CentOS 6作为基础,谈我认为最基本的4点。

有关网页渲染,每个前端开发者都该知道的那点事儿

有关网页渲染,每个前端开发者都该知道的那点事儿

有关网页渲染的文章很多,但是相关信息比较分散,且论述并不是很完整。如果要想对这个主题有个大致的了解,我们还得学习很多知识。因此,Web开发者Alexander Skutin 决定写一篇文章。他相信,这篇文章不仅能帮助初学者,也能对那些想要刷新知识结构的高级前端开发者有所裨益。

算法的力量,李开复聊算法的重要性

算法的力量,李开复聊算法的重要性

算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解, 认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实大家都被这些公司误导了。

关于 Android 进程保活,你所需要知道的一切

关于 Android 进程保活,你所需要知道的一切

关于 Android 平台的进程保活这一块,想必是所有 Android 开发者瞩目的内容之一。你到网上搜 Android 进程保活,可以搜出各种各样神乎其技的做法,绝大多数都是极其不靠谱。前段时间,Github还出现了一个很火的“黑科技”进程保活库,声称可以做到进程永生不死。

那些容易被忽视的 JavaScript 细节

那些容易被忽视的 JavaScript 细节

《JavaScript 权威指南》这本书从第四版开始,一直到第六版,每个版本我都逐字逐句读过几遍,然而每一遍下来的感受却完全不一样。上上周的周一,再次翻开了这本犀牛书,这一次我是带着批判精神和研究精神过来的,所以看的时候也写下了一些感受和笔记,都是些容易被忽略的点,部分内容犀牛书上不一定有提到。

Twitter工程师聊JavaScript

Twitter工程师聊JavaScript

本文是Twitter软件工程师Bonnie Eisenman对JS现状的看法和对开发者的一点建议

从一行代码里面学点JavaScript

从一行代码里面学点JavaScript

从一行代码里面学点JavaScript,现如今,JavaScript无处不在,因此关于JavaScript的新知识也是层出不穷。JavaScript的特点在于,要学习它的语法入门简简单,但是要精通使用它的方式却是一件不容易的事。

Android开发中,那些让你相见恨晚的方法、类或接口

Android开发中,那些让你相见恨晚的方法、类或接口

本文类容来自我在知乎上对Android开发中,有哪些让你觉得相见恨晚的方法、类或接口?

Swift 中 10 个震惊小伙伴的单行代码

Swift 中 10 个震惊小伙伴的单行代码

我们永远无法得知有多少人在社交聚会中对这些单行代码留下了深刻的印象,但根据我的猜测,越复杂的例子越能激励我们学习更多函数式编程的知识,至少对外行人来说是这样。

一个最不可思议的 MySQL 死锁分析

一个最不可思议的 MySQL 死锁分析

做MySQL代码的深入分析也有些年头了,再加上自己10年左右的数据库内核研发经验,自认为对于MySQL/InnoDB的加锁实现了如指掌,正因如此,前段时间,还专门写了一篇洋洋洒洒的文章,专门分析MySQL的加锁实现细节:《MySQL加锁处理分析》。