深入理解排序算法(一):插入排序、冒泡排序、选择排序

写在前面:开始系统地梳理知识,暂且先把一些想法记录下来,后续有时间再做进一步整理和完善,比如展开文字、配以实例和图片等。

排序算法是最常用的算法之一,分析排序算法的三个重要指标:时间复杂度、空间复杂度以及稳定性。

基于比较的排序算法时间复杂度一般在O(nlogn)到O(n2)之间。

空间复杂度为O(1)的排序称为就地(in-place)排序,或者原址排序,非就地排序的空间复杂度一般为O(n)。

稳定性指的是序列中相等的元素在排序后的前后位置是否会发生变化,如果不变则排序算法是稳定的(stable),否则为不稳定。

排序可以按从小到大,也可以按从大到小的顺序排列,后面我们在讨论和实现算法时都以前者为准。

插入排序、冒泡排序、选择排序是三种最简单直接的排序算法,都是基于比较+交换,由内外两层循环实现,其中外循环次数为n-1,内循环次数跟外循环的循环变量相关,平均时间复杂度为O(n2),空间复杂度为O(1)。 继续阅读“深入理解排序算法(一):插入排序、冒泡排序、选择排序”

舞台

photo by Rob Laughter

空空的舞台
在等待
一束光的开启

时空的那头
人影晃动
激扬的头发
弹奏着光的琴弦

天生的歌者
闪耀于舞台中央
将每一串音符
唱出生命的色彩

真正的歌者
纵然没有舞台
也要把歌声
唱与高山,唱与大海

但此刻
空空的舞台
还在等待
一束光的开启

那些路边的蟋蟀
趁夜色尚未到来
开始寻找,今夜
吟唱的舞台

photo by Yvette de Wit

颐和园冬日一景——金光穿洞

十七孔桥位于颐和园内,是我国古代桥梁建筑的杰作,因有十七个桥洞而得名。它全长150余米,犹如一道长虹,横跨在昆明湖上,连接着东堤与南湖岛。

每年冬至前后,夕阳西斜之时,金色的光芒便会照亮十七个桥孔,形成一道跟时令相关的独特景观,人们称之为“金光穿洞”或者“金光穿孔”。 继续阅读“颐和园冬日一景——金光穿洞”

上海迪士尼超全攻略,你想知道的都在这里

本文公众号文章链接:http://mp.weixin.qq.com/s/ZeOJvm12rnhAo66-ADdwow

在上海迪士尼开园前就给闺女许下的承诺,终于在今年暑期得以实现。

8月的上海迪士尼酷热无比、人满为患,38度的高温和5万左右的客流量给我们带来了巨大考验。

虽然其间充满了汗水,但在两天的游玩后,无论是孩子还是大人,都觉得不虚此行。

动身之前,个人也查阅了不少攻略。事后发现这些攻略或不够全面,或有的地方已经过时,于是决定自己也写一篇,希望能给其他朋友一些参考。
继续阅读“上海迪士尼超全攻略,你想知道的都在这里”

图虫网器材信息可视化

周日在家干了一件好久之前就想做的事情:将图虫网的器材统计信息可视化,以便直观的查看各种摄影器材的市场占有情况。

涉及的工作主要包括数据抓取、存储和可视化展示三部分。数据抓取和存储使用的是python脚本,可视化展示的后端当然用的是php,前端用的是百度的echarts。整个工作比预想的要简单和顺利。还有一些工作待以后有时间再完善,比如按品牌查看等。

页面链接:摄影器材市场占比统计

不完美的美,2016年摄影小结

岁末年初是总结的时节,摄影爱好者习惯在此时整理一年所拍的照片,从中挑选出自己最满意的作品。如果是十张,则美其名曰“年度十大照片”,如果是十二张,则可以做成新年日历。如此种种,乐在其中,也算是一种生活方式。

在摄影方面,我的2016年,是重拾相机的一年。

此前,一方面是由于工作学习太忙,另一方面是由于相机不够专业(多年前的佳能500D),很多时候达不到自己想要的效果,所以久而久之也就没了拍摄的动力。

去年年底的时候,正值佳能新机发布不久,便将单反升级到了全画幅——5D Mark IV + EF24-70mm f/2.8L II,了却了多年的心愿。 继续阅读“不完美的美,2016年摄影小结”

创意十足!张靓颖的新歌MV,带你走进名画世界

dmso

最近,微博和微信都出现了不少关于张靓颖新歌MV的介绍分析文章,这一方面反映了这部MV的成功,另一方面也说明还是有不少吃瓜群众在八卦之余还是对艺术感点兴趣的。

但我想说,这些文章都有一点小小的错误,因为他们“引用”了错误的来源,而正确的答案我早已在网上的一个小角落里给出,可惜不为人知。原本上个周末就打算写这篇文章,但实在没有时间,结果导致错误答案就这样流传开来,着实惭愧。(别扔啦,鸡蛋和西红柿已经够了) 继续阅读“创意十足!张靓颖的新歌MV,带你走进名画世界”