一、概念: 在计算机科学中,分治法是建基于多项分支递归的一种很重要的算法范式。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以寄简单的直接求解,原问题的解即子问题的解的合并。 这个技巧是很多高校算法的基础,如排序算法(快速排序、归并排序)、...
分类:
其他好文 时间:
2014-08-05 15:33:29
阅读次数:
178
一、开发工具1. 本项目使用Golang进行开发,主要有以下好处Golang是一种类型安全(type-safe)的语言,并且自带垃圾回收机制,避开了许多底层语言如C/C++中的陷阱引入了许多轻便实用性强的数据结构,比如变长数组,字典等提供了大量的包其中包括网络库,RPC等供编程者使用,使得开发效率更...
分类:
其他好文 时间:
2014-08-05 13:20:29
阅读次数:
436
一、学习想法 用两天的时间学习golang,但这次是先不看书的,直接写代码先。 我们常习惯边看书边学习写代码,但发现过程是比较缓慢的,所以我就先想写代码,边写边查。就我们所知,web app一般是基于MVC框架,那么我可以先写数据层,从先写数据库查数据开始,可以用DAO模式,但这里我只是用一个简.....
分类:
Web程序 时间:
2014-08-04 02:02:06
阅读次数:
278
比较零乱的学了一段时间的golang,一直觉得条理化的信息太少。 最近看到《the way to go》,才发现这就是我所需要的营养大餐,以后再找一本Go的标准库详解就完美了。 本书居然有中文版@无闻 @unkown,这是真正的活...
分类:
其他好文 时间:
2014-08-03 10:23:45
阅读次数:
256
首先说明一下快速排序是对冒泡排序的改进。为什么这么说呢?想一下冒泡排序,它把序列分成了两部分,前半部分无序,后半部分升序排列,并且后半部分的数都大于前半部的数。
由此可得到快速排序和冒泡排序的一些共同点:
都要经历n趟排序每趟排序要经历O(n)次比较都是后半部分元素比前半部大
而不同之处就在于冒泡排序的交换操作发生相邻的元素之间,即一趟排序可以要经过多次交换操作;快速排序的交换操作发生在...
分类:
其他好文 时间:
2014-08-02 12:51:33
阅读次数:
197
#!r6rs
( import ( rnrs base ( 6 ) ) )
( define ( filter pred items )
( cond [ ( null? items ) '() ]
[ ( pred ( car items ) )
( cons ( car items )...
分类:
其他好文 时间:
2014-08-02 01:53:12
阅读次数:
287
排序算法总结(C语言版)1. 插入排序1.1 直接插入排序1.2 Shell排序2. 交换排序2.1 冒泡排序2.2 快速排序3. 选择排序3.1 直接选择排序3.2 堆排序4. 归并排序4.1 二路归并排序4.2 自然合并排序5. 分布排序5.1 基数排序1.插入排序1.1 直接插入排序...
分类:
编程语言 时间:
2014-08-01 23:04:42
阅读次数:
349
#include // 数组长度#define LENGTH(array) ( (sizeof(array)) / (sizeof(array[0])) )/* * 快速排序 * * 参数说明: * a -- 待排序的数组 * l -- 数组的左边界(例如,从起始位置开始排序,则l=...
分类:
系统相关 时间:
2014-08-01 18:57:42
阅读次数:
213
1.快速排序假设待排序的序列为L[m...n],而一趟排序目的就是将其分割为两个子序列,分别为L[m...middle-1]和L[middle+1...n],其中L[m...middle-1]中的每个元素都小于L[middle],而L[middle+1...n]中的每个元素都大于L[middle]递...
分类:
其他好文 时间:
2014-08-01 18:33:12
阅读次数:
203
1.快速排序思想 快速排序基本思想是:通过一趟排序将序列分成独立的两部分,其中一部分的关键字都小于或都大于另一部分的关键字,则可以对这两部分记录继续排序,达到整个序列有序位置。假设待排序记录a1,a2...an,n个记录,首先任意选取一个记录作为轴pivot,将比它小的记录放到其左边,将比它大的记....
分类:
其他好文 时间:
2014-08-01 04:43:11
阅读次数:
244