2014年3月19日

移位数组的二分查找

摘要: 一,题目 一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数。二,分析 1)在此序列不断二分的过程中,由于原序列是一个递减序列经过旋转得到的,将它从任何位置分开,都会得到两个序列, 其中一个是递减序列 另一个可以通过一个递减序列通过旋转得到。 2)这样在不断地二分查找时,我们处理的序列子片段要么就是一个旋转后递减序列,要么就是一个纯递减序列, 3)无论是前者还是后者,在继续分成两个片段时,至少有一个纯递减序列(可能两个都是,如果之前的序列片段就是纯递减序列的话)。 4)这样我们可以保证能找到一个片... 阅读全文

posted @ 2014-03-19 23:08 theCambrian.cpp 阅读(684) 评论(0) 推荐(0) 编辑

字符串相关函数的实现

摘要: strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。void*memcpy(void*dest,constvoid*src,size_tcount);考虑内存重叠的情况:(细节决定成败)#include "stdafx.h"#include usi 阅读全文

posted @ 2014-03-19 21:20 theCambrian.cpp 阅读(302) 评论(0) 推荐(0) 编辑

Linux 的多线程编程的高效开发经验

摘要: 简介:本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条经验,用以改善 Linux 多线程编程的习惯和避免其中的开发陷阱。在本文中,我们穿插一些 Windows 的编程用例用以对比 Linux 特性,以加深读者印象。原文:http://www.ibm.com/developerworks/cn/linux/l-cn-mthreadps/背景Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断。本文中我们从 5 个方面总结出 Linux 多线程编程 阅读全文

posted @ 2014-03-19 10:25 theCambrian.cpp 阅读(219) 评论(0) 推荐(0) 编辑

导航