- 博客(6)
- 资源 (28)
- 收藏
- 关注
原创 Java与C之间的socket通信
最近正在开发一个基于指纹的音乐检索应用,算法部分已经完成,所以尝试做一个Android App。Android与服务器通信通常采用HTTP通信方式和Socket通信方式。由于对web服务器编程了解较少,而且后台服务器已经采用原始socket实现与c客户端通信,这就要求Android客户端也采用socket实现。所以在开发Android app时采用了原始socket进行编程。由于算法是用C语言
2014-04-30 18:03:14 45626 14
原创 深入理解快速排序算法的稳定性
在初次接触排序算法稳定性这个概念时,我一直认为复杂度为O(n2)的算法是稳定的,复杂度为O(nlogn)的算法是不稳定的。当时是这样理解的,复杂度为O(n2)的算法不可能再坏,而复杂度为O(nlogn)的算法在极端情况下可能会退化为O(n2),例如快速排序。但其实这是错误的,稳定性的概念远没有这么复杂,它只表示两个值相同的元素在排序前后是否有位置变化。如果前后位置变化,则排序算法是稳定的,否则是不
2014-04-30 11:30:06 23066 5
原创 新手学python(3):yield与序列化
1 Yield生成器 Yield是我在其他语言中没有见过的一个属性,算是python的一大特色,用好之后可以使代码更简洁。考虑一个简单的例子,文件的遍历。要遍历一个目录下的所有文件需要递归的操作。如果我们只是单纯的打印文件名,我们可以在递归的过程中完成,每当发现一个非目录就可以打印文件名。代码如下:class TraverseDirectory(object): @s
2014-04-29 16:57:11 5795
原创 新手学python(2):C语言调用完成数据库操作
继续介绍本人的python学习过程。本节介绍如何利用python调用c代码。内容还是基于音乐信息提取的过程,架构如图一。Python调用c实现的功能是利用python访问c语言完成mysql数据库操作。在利用python调用c语言之前,我们需要首先完成c语言功能代码,然后再考虑语言的转换问题,所以我们先介绍c语言实现的数据库访问代码。数据库操作主要包括DDL和DML,DDL在创建数
2014-04-07 16:16:01 4016 4
原创 数据库再设计(Database Redesign)
数据库设计有三个来源:(1)可以从现有数据开始设计数据库,例如从excel表格等,这种模式下需要考虑的问题是数据的normalization,最终通常将数据转化为BCNF范式;(2)设计新的数据库,这种模式需要从构建E-R图开始一步步构造完整的数据库;(3)数据库再设计,这种模式需要修改现有数据库,使其满足新的数据或者性能要求。本博客介绍第三种数据库设计模式。此外,为了介绍数据库再设计,我们需要有
2014-04-05 20:38:18 3432 2
原创 基数排序的性能优化
最近需要对大小在0到100万内的很多数组进行排序,每一个数组的长度都不固定,短则几十,长则几千。为了最快完成排序,需要将数组大小和数据范围考虑进去。由于快速排序是常规排序中速度最快的,首选肯定是它。但是数组中数据的范围固定,可以考虑基数排序。为了使排序耗时尽可能短,需要测试这两种排序算法。快排是面试过程中常考的手写代码,需要背得滚瓜烂熟,代码如下:void swap(int* a,int
2014-04-03 16:00:58 9159 6
基于递归分割的迷宫生成算法与自动寻路
2016-08-01
基于Access数据库的matlab学生成绩管理系统
2014-06-29
哼唱检索的并行化方法研究与实现
2014-03-18
vim高亮插件
2013-06-20
marsyas工作过程
2012-07-09
TCP实现windows和linux之间文件传输
2012-03-02
高效的霍夫曼文本压缩
2011-10-31
基于最短路的GPS地图导航
2011-02-28
PL0 集成开发环境
2010-07-12
PL0递归下降编译程序
2010-03-12
用霍夫曼树实现的文本压缩*(升级版)
2010-03-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人