摘要:废话就不说了,直接上步骤和代码:1 创建一个基于Navigation-based Application的iphone工程,为什么要创建基于Navigation-based Application的工程呢,因为这样系统就会自动将Navigation视图加到我们的窗口视图中,这样我们就不用自己手动去加,并且可以用[self.navigationControllerpushViewController:otherviewanimated:YES]去跳转页面。当设置每个页面的标题后会在页面左上角自动生成后退导航按钮,多方便呀,当然需要在建立后将xib文件里面的tableview去掉加入view。2 阅读全文
《算法导论》第6章 堆排序 (3)K路归并
2012-02-15 21:58 by htc开发, 199 阅读, 0 推荐, 收藏, 编辑
摘要:问题描述:问题来自习题6.5-8 给出一个时间为O(nlgk),用来将k个已排序链表合并为一个排序链表的算法。此处n为所有输入链表中元素的总数。(提示:用一个最小堆来做k路合并)。在K路归并问题中,取出最小堆的根元素(最小元素)后,如果此元素没有后继元素(next为空),则有两种方案:一、从K路中的另一个链表取出一个元素放到根位置。二、将堆底部最后一个元素挪到根位置,并将堆大小减一。此处采用方案二。堆大小每减一,说明K路中某一个链表已处理完。当堆大小为零时,处理结束。源码与注释:// 链表结点类classNode {intvalue;Nodenext;}publicclassKMerge {p 阅读全文
《算法导论》第6章 堆排序 (1)最大堆与堆排序
2012-02-14 22:40 by htc开发, 179 阅读, 0 推荐, 收藏, 编辑
摘要:6.1 堆“堆”这个词最初是在堆排序中提出的,但后来就逐渐指“废料收集存储区”,像Lisp和Java中提供的那样。(二叉)堆是一种数组对象,可以被视为一棵完全二叉树。length[A]是数组中的元素个数,heap-size[A]是存放在A中堆的元素个数。树的根是A[1]。堆的重要函数:max_heapifybuild_max_heapheapsort6.2 - 6.4 最大堆// 将LEFT和RIGHT定义为宏(避免小函数调用的开销)// 注意宏的定义要加上括号避免文本替换时运算符问题#include <stdio.h>#define LEFT(i) (2 * (i))#defin 阅读全文
iPhone程序运行流程浅谈
2012-02-13 09:45 by htc开发, 171 阅读, 0 推荐, 收藏, 编辑
摘要:我在刚接触iOS开发的时候,也对这个运行流程模糊不清。希望这边文章能对初学的朋友给予帮助。1. 和大多数语言一样,每一个iPhone应用也都是从主函数开始运行,它的main函数都在XCode的Other Reasource逻辑目录下。 [cpp] view plaincopyprint?UIApplicationMain(argc, argv, nil, nil); UIApplicationMain(argc, argv, nil, nil); 系统会自动给你生成上面的代码,第三个参数和第四个参数指明了应用程序的生命周期管理类和对生命周期管理类产生事件进行响应的委托类,第三个参数被指定为ni 阅读全文
《C和指针》第14章 预处理器
2012-02-12 17:57 by htc开发, 157 阅读, 0 推荐, 收藏, 编辑
摘要:14.2.1 宏#define包括一个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)。#define SQUARE(x) x * x则程序中的SQUARE(5)会被替换成:5 * 5警告:例1:a = 5;printf("%d\n", SQUARE(a + 1));会被替换成5 + 1 * 5 + 1,打印结果是11,不是36。例2: #define SQUARE(x) (x) + (x) a = 5; printf("%d\n", 10 * SQUARE(a));会变成10 * 5 + 5,打印结果是55,不是100。正确定义为:#de 阅读全文
《Shell脚本学习指南》第四章 文本处理工具
2012-02-11 22:47 by htc开发, 200 阅读, 0 推荐, 收藏, 编辑
摘要:4.1 排序文本4.1.1 行的排序未提供命令行选项时,整个记录会根据当前locale所定义的次序排序。在传统的C locale中,也就是ASCII顺序。4.1.2 以字段排序-k选项的后面接着的是一个字段编号,或者是一对数字。每个编号后面都可以接一个点号的字符位置,或修饰符字母。如果仅指定一个字段编号,则排序键值会自该字段的起始处开始,一直继续到记录的结尾(而非字段的结尾)。如果给的是一对用逗号隔开的字段数字,则排序键值将由第一个字段值的起始处开始,结束于第二个字段值的结尾。使用点号表示字符位置。-k2.4, 5.6指的是从第二个字段的第四个字符开始比较,一直比到第五个字段的第六个字符。$ 阅读全文
《Shell脚本学习指南》第三章 查找与替换
2012-02-11 17:10 by htc开发, 348 阅读, 0 推荐, 收藏, 编辑
摘要:3.1 查找文本grep:使用POSIX定义的基本正则表达式(BRE)。egrep:使用扩展正则表达式(ERE)。fgrep:快速grep。使用优化的算法,匹配固定字符串而非正则表达式。1992 POSIX标准将这三个改版整合成一个grep程序。$ who | grep -F austen使用-F选项查找固定字符串。事实上,只要匹配的模式里未含有正则表达式的meta字符,则grep默认行为模式就等同于使用了-F。3.2.6 在文本文件里进行替换一般来说,执行文本替换的正确程序应该是sed - 流编辑器。sed 's/:.*//' /etc/passwd | 删除第一个冒号之后的 阅读全文
SHELL 综合水平测试
2012-02-07 17:33 by htc开发, 155 阅读, 0 推荐, 收藏, 编辑
摘要:按:SHELL 水平测试系列并非覆盖 SHELL 的所有方面,而是挑选一些题目以引发思考,以管中窥豹的方式达到检验水平的目的.希望回答问题时不是简单地 Yes or No. 而是写出解决方案。很多问题在不同的 shell 或 工具之间表现不同, 请列出不同之处 [ SHELL 水平测试 ][ OVERVIEW 篇 ]1. 有很多种 shell, 你熟悉几种? 各个 shell 的 home page 在那里?2. 为什么说 zsh 是目前为止功能最为强大的 shell.3. 为什么说 pdksh 功能较弱?4. ksh88 与 ksh93 有何区别?5. 为什么 shell 编程最... 阅读全文
Linux内核管理之内参数介绍
2012-02-07 10:59 by htc开发, 214 阅读, 0 推荐, 收藏, 编辑
摘要:RedHat向管理员提供了非常好的方法,使我们可以在系统运行时更改内核参数,而不需要重新引导系统。这是通过/proc虚拟文件系统实现的。/proc/sys目录下存放着大多数的内核参数,并且设计成可以在系统运行的同时进行更改。下面我们以打开内核的 ip转发功能为例说明在系统运行时修改内核参数的两种方法。IP转发是指允许系统对来源和目的地都不是本机的数据包通过网络,RedHat默认屏蔽此功能,在 需要用本机作为路由器、NAT等情况下需要开启此功能。 方法一:修改/proc下内核参数文件内容 直接修改内核参数ip_forward对应在/proc下的文件/proc/sys/net/ipv4/ip... 阅读全文
Linux网络管理之网络抓包
2012-02-07 10:59 by htc开发, 272 阅读, 0 推荐, 收藏, 编辑
摘要:linux tcpdump命令需要以root身份使用。举例:抓本机8804端口上的数据,并将抓包结果保存在test.cap文件中tcpdump -X -s 0 -w test.cap port 8804tcpdump -X -s 0 -w test.cap host 220.194.51.1tcpdump -X -s 0 -w test.cap port 8804-X Print each packet (minus its link level header) in hex and ASCII.-s snaplen Setting snaplen to 0 means use the req 阅读全文