计数排序:它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法
实现原理: 首先将k范围内的数都C[]数组设0,然后遍历一边数组A[],对应的C[A[i]]++,
然后再将A[]数组向高位递加,观察发现每个不同的数字对应的C[]值都是该数字在排序后数组的位置,然后填充重复的数字
代码:
#include
#include
...
分类:
其他好文 时间:
2014-05-07 08:50:13
阅读次数:
254
文章介绍了使用NSURLProtocol实现UIWebView的离线缓存的简单实现,你可以在github上下载这个demo的代码。
无论是“MKNetworkKit”还是”AFCache”实现的缓存都过于复杂,而他想要的是一个简单机制:
1、你使用了UIWebView指向来显示一个有图像嵌入的网站。
2、当你的设备online时,你有正常的缓存算法。
3、当你的设备offline时...
分类:
Web程序 时间:
2014-05-07 07:38:57
阅读次数:
375
这道题还挺复杂的,回来看了好一会儿才想起当时怎么想的。。上道题刚说不要打表,这道题就用了打表。。
总的思路是这样的,从后面往前面打表,最后一个位置的最小分割一定是0,那往前呢,如果当前考虑的位置是start,并且substr(s, i)是回文的,那么如果已知i+1开始的分割次数,那么start这个位置的分割应该就是start原来的和i+1开始的分割次数加1之间的最小值。DP的思想,很直接。
但...
分类:
其他好文 时间:
2014-05-07 07:37:39
阅读次数:
307
这道题思路不难,本质就是BFS嘛,从一个单词开始,他的下一层是所有可以一步变到,且从来没变到过得那些string。问题是怎样确定这些可以变到的string呢?有两个条件,一,只能通过上一层的string变化一个数字得到,二,变化之后单词必须在字典中。注意是变化一个字母得到,而不是编辑距离是1,要么就复杂了,情况多了好多好多。
我最开始的思路是建个map,保存所有从开始单词能变化到得单词及这些单词...
分类:
其他好文 时间:
2014-05-07 06:18:46
阅读次数:
276
唉,刚刚用C++又重新写了一个较完善的表达式求值程序,最后精简后程序还不到100行,这不经让我
想到了大一上学期刚学c语言时自己费了好大的劲,写了几百行而且功能还不是很齐全(当时还不能计算有括号的表
达式)的简单计算器程序。刚把两个程序对比了一下,感触还是挺深的,同时也再一次体现了数据结构在程序设计
中的重要性。
以前的那个程序有漏洞而且逻辑复杂,所以就不提了,只说说现在改进后的程序,其思...
分类:
编程语言 时间:
2014-05-07 06:06:16
阅读次数:
441
根据题意,很明显可以推出DP方程。
假如只考虑向左的方向:
dp[t][i][j]: 第t个时间段末滑行到i,j最长滑行的距离。
dp[t][i][j]=dp[t-1][i][1..k]+(j-k)=dp[t-1][i][1..k]-k+j(k
最终时间复杂度为O(n*m*k)
#include
#include
#include
#include
#include
using nam...
分类:
其他好文 时间:
2014-05-07 04:49:13
阅读次数:
363
一个简单的podfile:
pod 'AFNetworking', '~> 1.0' 版本号可以是1.0,可以是1.1,1.9,但必须小于2
-个更简单的podfile:
pod 'AFNetworking', '1.0' // 版本号指定为1.0
一个更更简单的podfile:
pod 'AFNetworking', // 不指定版本号,任何版本都可以一个复杂的po...
分类:
其他好文 时间:
2014-05-07 04:32:12
阅读次数:
384
搞点多维分析,糙快猛的解决方案就是使用ROLAP(关系型OLAP)了。数据经维度建模后存储在MySQL,ROLAP引擎(比如开源的Mondrian)负责将OLAP请求转化为SQL语句提交给数据库。OLAP计算分析功能导致MySQL需要进行较多复杂SQL查询,性能调优必不可少,本文总结了一些实用原则。
OLAP特点
OLAP的典型应用包括复杂动态报表,需要支持钻取(上卷和下钻)、切片、切块和旋转...
分类:
数据库 时间:
2014-05-07 03:19:42
阅读次数:
580
数值算法:解方程、微积分、数值分析 多用在工程设计
非数值算法:搜索、排序、拆分、合并 多用在系统
一、线性搜索
1.算法
1.1从头开始,依次将每一个元素与查找目标进行比较
1.2或者找到目标,或者找不到目标
2.评估
2.1平均时间复杂度:O(N),线性时间
2.2对数据没有任何规律性要求 穷举法
二、二分搜索(折半搜索)
1.算法
1.1假设表中...
分类:
其他好文 时间:
2014-05-06 15:36:44
阅读次数:
260
虽然多线程的使用可以提高应用程序的性能,但也增加了复杂性。 如果使用线程在同一时间执行几个函数,访问共享资源时必须相应地同步。 一旦应用达到了一定规模,这涉及相当一些工作。 所以要学习Boost.Thread提供同步线程的类。...
分类:
编程语言 时间:
2014-05-06 14:42:40
阅读次数:
329