堆:堆是具有特殊性质的二叉树
每个结点都大于其左右儿子的的二叉树叫大顶堆
每个结点都小于其左右儿子的二叉树叫做小顶堆
堆排序图解:
给定一个整形数组a[]={16,7,3,20,17,8},对其进行堆排序。
首先根据该数组元素构建一个完全二叉树,得到
然后需要构造初始堆,则从最后一个非叶节点开始调整,调整过程如下:
20和...
分类:
编程语言 时间:
2015-01-26 22:55:08
阅读次数:
248
题意: 给一个n*m的棋盘,在上面放上车,放的车之间不能相互攻击(在同一行或者同一列就能相互攻击),并且只有某些点能放车。 问最多能放多少车,其中有多少个格子必须放才能放最多的车。
这是一道很好的理解匈牙利算法的题目。 首先我们求最多放多少车,这是一个行列匹配问题。假设我们用n个左边的点代表行 ,m个右边的点放在右边,如果一个格子(x,y)能放车,那么将左边的x和右边的y连接一起建一条边。这个...
分类:
编程语言 时间:
2015-01-26 22:54:40
阅读次数:
320
模拟退火解TSP/*
* @file SA.cpp
* @brief SA解TSP
* @author/Univ. taoxiaoxiao/XMU
* @date 11-2-2014
*/
#include
#include
#include
using namespace std;
#define max 51 //最大的输入规格
int a[m...
分类:
其他好文 时间:
2015-01-26 22:53:15
阅读次数:
389
Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTION给Android,Android...
分类:
移动开发 时间:
2015-01-26 22:52:36
阅读次数:
237
一:首先看一段小程序
k = 0;
def changek():
k = 10;
changek()
print k
定义一个变量k
定义一个函数changex
在changex内部,将10赋值给k
打印x
执行结果为: 0
说明:k是全局变量,而changex中声明的是另外一个局部变量。此k非彼k,执行完changex,函数内部的k就消失。跟jav...
分类:
编程语言 时间:
2015-01-26 22:50:11
阅读次数:
181
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/43159817
在上一篇文章中介绍了“提炼类”。本文将介绍“将类内联化”这种重构手法。
下面让我们来学习这种重构手法吧。
开门见山
发现:某个类并没有做太多的事情。
解决:将这个类的所有特性搬移到另一个类中,然后移除原类。
动机...
分类:
其他好文 时间:
2015-01-26 22:51:47
阅读次数:
214
CFNetwork是一个低级别高性能的框架,使你能够精细的控制协议栈。它是BSD套接字的扩展,标准套接字抽象API提供对象来简化任务,例如与FTP和HTTP服务器或解析DNS主机。CFNetwork物理上和理论上都基于BSD套接字。
正如CFNetwork依赖与BSD套接字,有大量的Cocoa类依赖CFNetwork(例如,NSURL)。此外,Cocoa类的web工具包用来在窗口显示网页内容。这...
分类:
Web程序 时间:
2015-01-26 22:51:04
阅读次数:
301
Again Palindromes
Input: Standard Input
Output: Standard Output
Time Limit: 2 Seconds
A palindorme is a sequence of one or more characters that reads the same from the left as it does from th...
分类:
其他好文 时间:
2015-01-26 22:50:54
阅读次数:
205
本文解释了如何创建、发送和接收HTTP请求和响应。
创建一个CFHTTP请求
HTTP请求是一个消息,这个消息由远程服务器执行的方法,操作的对象(URL),消息头和消息体。方法通常是下面之一:GET, HEAD, PUT, POST, DELETE, TRACE, CONNECT 或OPTIONS。用CFHTTP创建一个HTTP请求分为四个步骤:
使用CFHTTPMessageCre...
分类:
Web程序 时间:
2015-01-26 22:50:32
阅读次数:
301
一:先看程序
#coding:utf-8
import math
print math.pi
print math.sin(math.pi/2)
#打印math模块提供的功能:
print dir(math)
输出结果:
二:总结
(1)在python用import或者from...import来导入相应的模块,例如本例导入math模块
模块其实就是一些函数和类的集合文件,...
分类:
编程语言 时间:
2015-01-26 22:49:26
阅读次数:
236
题目大意:给定一个序列,求差分后有多少个子串满足形式为ABA,其中B部分长度为m,A部分长度大于0
首先枚举A的长度j,将序列上每隔j个点插入一个关键点
对于第i个位置上的关键点,我们找到第i+j+m个位置
利用后缀数组找出两个位置向左拓展多少个位置都是相同的,以及向右拓展都少个位置都是相同的
为了保证不重复向左和向右最多拓展j-1个位置
设拓展之后长度为len,那么如果len>=j,a...
分类:
编程语言 时间:
2015-01-26 22:51:50
阅读次数:
274
一:先看一段程序
a = [1,2,3]
b = a
b[0] = 0
print b
print a
你能猜出执行结果吗?让我们来执行一下:
[0, 2, 3]
[0, 2, 3]
为什么?我们只是修改了b集合的值,为什么a也变了呢?
因为当我们b = a 的时候,其实是将a和b对象指向了同一块内存【1,2,3】
二:再来看
同样的道理,如果修改a的值呢?
a ...
分类:
编程语言 时间:
2015-01-26 22:50:44
阅读次数:
211
CoreLocation框架的两个主要类CLLocationManager和CLGeoCoder介绍...
分类:
移动开发 时间:
2015-01-26 22:51:19
阅读次数:
294
BlazeDS是Flex与java通信的众多方式中的一种,其优点在于开源使用起来方便且性能能够满足中小型应用的常规要求,所以是很多中小型java应用与flex通信的首选方式.而使用BlazeDS手动配置的配置文件比较多,若是借用spring的注解方式就能方便地进行配置了....
分类:
编程语言 时间:
2015-01-26 22:49:22
阅读次数:
262
快乐虾http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651)欢迎转载,但请保留作者信息本文仅适用于vs2013 + velt-0.1.31.1 什么是VELTVELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Lin...
分类:
系统相关 时间:
2015-01-26 22:51:29
阅读次数:
415
SICP 习题:
#lang scheme
( define ( variable? x )
( symbol? x ) )
( define ( same-variable? x y )
( and ( variable? x )
( variable? y )
( eq? x y ) ) )
( define ...
分类:
其他好文 时间:
2015-01-26 22:49:12
阅读次数:
156
之前学习volley框架,用ImageLoader可以设置内存缓存,用一个LruCache,就可以避免OOM且图片读取速度快,爽极了。
后来想,如果只是内存缓存的话,那退出程序或者内存不够大了,缓存的图片不就被清理掉了,这样每次启动程序就又得去网上下载图片,流量好贵的。
于是找到了磁盘缓存框架DiskLruCache,这是一个挺著名的开源框架,网易云阅读等APP之前都用它来缓存图片,关...
分类:
其他好文 时间:
2015-01-26 22:49:11
阅读次数:
263