自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 shell中数组的使用

#!/bin/sh#数组的创建array=(jim lilei richard mack mike)arrayB=("happy lee" "pig wang"  "peter zn"  "jack zhang"  "jim wei")#元素个数的获取

2011-05-05 20:12:00 1007

原创 字符串翻转(reverse)及相关扩展(数组元素交换重组等)

<br />1、基本问题:字符串翻转(strReverse),就是将一个字符串倒转,如abcdef 翻转后是fedcba<br />   其基本思路就是:将字符串中下标为(i)的元素与下标为 (n-i-1) 的元素交换:时间复杂度为<br /> O(n),空间复杂度为O(1),算法如下:<br />void strreverse(char *str){ int len=strlen(str); int i=0,j=len-1; char temp;

2011-04-29 09:55:00 1156

原创 扩展堆栈(stack) O(1) 时间访问栈中最小值(或最大值)

<br />问题描述:扩展stack的实现,完成正常的push,pop操作,新增访问最小(或最大)元素的接口Min(),使得push,pop,Min的时间复杂度都是O(1)。<br />问题分析:拿到这道题,我们最先的思考往往是,设计一个算法从栈中拿到最小值,所以开始考虑任何可以用来实现该功能的排序和查找算法。假设栈中有n个元素,一切排序和查找都不可能实现O(1)的时间复杂度找到最小值。<br />再看题目,既然是扩展stack的实现,stack是一种数据结构,一种数据的组织方式,扩展它,也就允许我们对其数

2011-04-20 10:58:00 6405

原创 求最小的K个数 O(N) 一种实现-基于堆排序

题目要求:给出一组数(有n个),求出前k个最小的数:形式化描述如下:给出一组数:c1,c2,...,Cn的无序排列A,设c1算法思想:用给定排列的前k个数建最大堆,对于后面的n-k个数,逐个进行判断,Ai(K如果Ai说白了,就是开始时认为序列中的前k个数就是这k个最小数,然后通过判断剩余的数,看看是否比这k个数中最大的还小,若小则将其换出,这样到最后,被换出的数肯定比这k个数都大,所以,这k个数就是前k个最小数了;算法实现如下:template void printTheKthMins(T a[],in

2011-04-19 16:44:00 1639

原创 C++类大小确定,构造、析构、静态、动态绑定(分析一道Oracle面试题)

 题目给出一段C++代码,要求写出运行结果,代码如下,大家可以自己先试一下:#include using namespace std;class A{public: A(){ cout

2011-04-16 23:57:00 1535 4

原创 二分查找 (请大家给看看,欢迎提bug,请不吝赐教)

<br />今天在读Jon Bentley的Programming Pearls,看到二分查找处,据说Jon当年做了测验90%的学生都给写错了,<br />我就顺手也写了个试试,Jon的学生都是世界Top系列名校的学生,所以我怀疑我的程序中也存在我没测试出来的缺陷<br />把程序贴出来,欢迎大家提bug,讨论。<br />#include <stdio.h>int binarySearch(int a[],int size,int target){ int lo=0,hi=siz

2011-04-15 13:51:00 696 1

原创 关于转圈打印数字,输入指定行和列和起始值,自动完成打印

要求按照如下格式循环转圈打印数字:1     2     3   4   514 15   16  17  613  20  19  18  712  11  10   9   8受Jon Bentley(Programming Pearls的作者)的教诲,我对题目进行了重新的清晰定义:输入:输入要打印矩阵的行(width)和列(high),起始值(矩阵左上角的的元素值)initvalue输出:符合要求的转圈打印数字的矩阵分析,在程序中我们只能按照行扫描打印,即打印函数主体是个双重循环for(i = 0;

2011-04-15 13:24:00 1184

原创 拆分,组合谜题 -【分割手链问题】【分割砝码问题】

<br />1、分割秤砣问题<br />一个40g的砝码被分成4块,这4块恰好可以称出1-40g之间所有重量(整数)。求这4块分别多重.<br />答案:1,3,9,27;这正好组成了三进制数的基,正好有三种状态:每个砝码:放左盘,放右盘,不放。所以用它们组合能表示出1~40的所有整数。<br />2、切割手链问题(引自<<啊哈,灵机一动>>,稍有修改)<br />   Qiyan.Du是一位年轻的女士,有一次她去日本旅游,感觉犹如回到了故乡,想在旅店包个房间住上7天,就到了一家店里,下面是她和店员的对话:

2011-04-15 11:59:00 2244

原创 C语言中的跳转goto&&setjmp&&longjmp sigsetjmp siglongjmp

1、goto语句,函数内部的短转移    goto语句只能跳转的到本函数内部的标签处,这个没得说,例子如下:    #include int main(){ int i=0; loop: printf("do something %d/n",i); i++; if(i 2、setjmp 和 longjmp 实现长跳转     函数原型如下:     #include         int s

2011-04-14 20:20:00 1376 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除