摘要: 八大排序算法有:冒泡排序、插入排序、选择排序、快速排序、希尔排序、堆排序、归并排序、基数排序。前面七种网上都有很多例子,但是最后一种基数排序却很少看到,所以我总结了一下,并且自己写了一个简单的实现。 基数排序是一种分配排序,其基本思想是:排序过程无须比较关键字,而是通过“分配”和“收集”过程来实现排序。它们的时间复杂度可达到线性O(n)。基数排序所做的事情,是对N位分别进行排序。从直觉上来看,人们可能会觉得应该首先按最高有效位进行排序,不过这点与我们的直觉相反,基数排序首先对最低有效位数字进行排序。如果我们每次比较r bits,则需要进行b/r趟,每趟进行计数排序需要O(n+2^r),则... 阅读全文
posted @ 2011-09-22 14:34 compulsive 阅读(8117) 评论(0) 推荐(1) 编辑
摘要: 这几天一直在做Redmine,终于有点成果了,该实现的功能基本都实现了,虽然很多原理还搞不太清楚,但是多少也算作出来一点了,希望早点可以发布。 快开始找工作了,又是一个挑战,要加油了啊!! 阅读全文
posted @ 2011-09-05 23:51 compulsive 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 安装Code Review插件后,在Redmine的“版本库”页面中,已经评审过的代码会有一个标记,显示有几条评审。但是这只能知道评审的数量,而不能快速跳转的已经评审过的页面。因此,我需要更改Code Review插件的源代码,在页面上显示这个链接。没有链接的“版本库”页面如下图所示: 很快就发现更改“版本库”页面的代码位于/vendor/plugins/redmine_code_review/apps/views/_update_revisions.html.erb。其中,显示已评审信息的代码如下:<script type="text/javascript"> 阅读全文
posted @ 2011-09-02 11:25 compulsive 阅读(951) 评论(0) 推荐(0) 编辑
摘要: Redmine自带的编辑器功能非常有限,只能实现简单的编辑功能。为了更好的编辑文档,我们可以安装开源的CKeditor。 下载地址:download 解压缩之后复制到vendor/plugins目录下,然后重启redmine。 进入管理->配置->文本格式,选择CKeditor。 显示效果如下图所示: 阅读全文
posted @ 2011-08-31 23:22 compulsive 阅读(1044) 评论(0) 推荐(0) 编辑
摘要: JavaScript可以实现丰富的网页显示效果,为了在Redmine中实现代码折叠,我在网上找了很久,最后终于发现一段JavaScript代码,可以作出折叠效果,实现起来也很简单,代码如下所示:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" 阅读全文
posted @ 2011-08-30 23:42 compulsive 阅读(1644) 评论(2) 推荐(0) 编辑
摘要: Redmine的code review插件可以显示代码的具体内容,但是缺少代码的作者、发布时间等等信息,所以需要对插件进行修改,添加这个功能。如图所示为没有修改时的显示页面: 可以看到,图中只有代码。 我们要做的就是在上面添加显示基本信息,研究过code_review源代码之后,发现相关的内容是在/app/views/code_review/_update_diff_view.html.erb中,添加如下代码段:<div id="code-review-assign-info"> <table style="width:100%"> 阅读全文
posted @ 2011-08-29 23:46 compulsive 阅读(758) 评论(0) 推荐(0) 编辑
摘要: 这几天学习Redmine的源代码,除了最基本的MVC结构之外,发现很多前端的代码都是用JavaScript写的,用于更好的实现用户交互部分。简单的看了一下这门脚本语言,应该说不是很难,但是由于对网页编程的陌生,代码看起来还是很费劲,今天学习了一下基础的部分,在这里记录一下。 JavaScript是目前Web应用程序开发者使用最为广泛的客户端脚本编程语言,它不仅可用来开发交互式的Web页面,更重要的是它将HTML、XML和Java Applet、Flash等功能强大的Web对象有机结合起来,使开发人员能够快速生成Internet上使用的分布式应用程序。JavaScript脚本已经成为了We... 阅读全文
posted @ 2011-08-26 23:54 compulsive 阅读(1168) 评论(0) 推荐(0) 编辑
摘要: Redmine 系统大部分的数据都是保存在数据库中的,为了了解Redmine系统的整体结构,有必要搞清楚这些数据是怎么保存的,表的结构是什么样的,里面有哪些内容。今天就研究一下这方面的内容,主要以code review相关的内容为主。 首先介绍几个常用MySQL操作命令:ALTER: 修改已存在的数据表(例如增加/删除列)和索引。 CREATE: 建立新的数据库或数据表。 DELETE: 删除表的记录。 DROP: 删除数据表或数据库。 INDEX: 建立或删除索引。 INSERT: 增加表的记录。 SELECT: 显示/搜索表的记录。 UPDATE: 修改表中已存在的记录。 这些命令... 阅读全文
posted @ 2011-08-25 22:47 compulsive 阅读(1056) 评论(0) 推荐(0) 编辑
摘要: 这几天学习redmine,顺便学了一些web架构方面的东西,这方面涉及到很多知识,比如MySQL、Javascript、HTML等等。这么多东西要慢慢研究了,今天先写一个刚学到的web框架吧,这就是REST。 REST(REpresentational State Transfer),意思是“表述性状态转移”。REST架构是针对Web应用而设计的,其目的是降低开发的复杂性,提高系统的可伸缩性。REST提出了如下设计准则: 网络上的所有事物都被抽象为资源(Resource)。 每个资源对应一个唯一的资源标识符(Resource Identifier)。 通过通用的连接器接... 阅读全文
posted @ 2011-08-24 23:50 compulsive 阅读(504) 评论(1) 推荐(0) 编辑
摘要: Redmine的一个重要优点就是强大的插件扩展功能,用户可以在Redmine官方的插件列表里寻找自己需要的插件,直接安装使用。而且,作为开源软件,这些插件的源代码都是公开的,这就方便了我们的学习,并可以按照自己的需求进一步开发,扩展功能。 今天我要安装一个很好用的插件—— Code Review。使用这个插件,我们就可以对开发人员提交的代码进行在线review,非常方便。我参考了两篇文章:分别是Redmine Code Review Wiki和Redmine插件CodeReview使用介绍。具体步骤如下: 一、安装Code Review 插件 1、下载 Code Review 插... 阅读全文
posted @ 2011-08-23 23:35 compulsive 阅读(2701) 评论(1) 推荐(0) 编辑