摘要:
在笔试题目中看到一个关于杨氏矩阵(Young Tableau)的问题,说实话,杨氏矩阵我还是第一次听说,就在网上百度谷歌了一番,感觉这个数据结构还蛮有意思的。而且这个数据结构在做增、删、查找的复杂度都比较低。以前只知道学书本上面的问题,现在才知道不能光学课本,还要了解那些能够在实际中有用的东西。首先介绍一下这个数据结构的定义,杨氏矩阵就是有一个m*n的矩阵,让后有一数组 a[k], 其中 k x 且x-u >= x-l 则将x 与 x-u进行交换;x-l > x 且x-l > x-u 则将x 与 x-l进行交换;x >= x-l 且 x > x-u 则x 不动,此 阅读全文
摘要:
堆的概念: 最小值堆:最小值堆是一个关键码序列{K0,K1,…Kn-1},它具有如下特性: Ki≤K2i+1 (i=0,1,…, n/2-1)Ki≤K2i十2 最大值堆:最大值堆是一个关键码序列{K0,K1,…Kn-1},它具有如下特性:Ki≥K2i+1 (i=0,1,…, n/2-1) Ki≥K2i十2 一句话,堆就是具有下列性质的二叉树:树的每个节点的值都大于等于其左右孩子节点的值就是大顶堆;树的每个节点的值都小于等于其左右孩子节点的值就是小顶堆。本文主要是想通过堆来进行排序,我们会提出一个疑问,我现在有一个堆,那么我按照层序遍历遍历这棵树的每个节点,输出的值是不是有序的呢?答案是否定的。 阅读全文
摘要:
题目如下:通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。要求实现函数: void stringZip(const char *pInputStr, long lInputLen, ch 阅读全文
摘要:
最近在考虑下半年找工作的事情,看了不少面试题目,其中还是蛮有收获的,把基础好好复习了一遍。比如这个题目,static、const现形式,static和const类型的变量在写程序的时候也写了很多,不过对编译器内部对其实现知之甚少。所以借这次机会好好百度谷歌了一番。 static实现形式 我们都知道,... 阅读全文
摘要:
折半查找,在此做一总结,递归和非递归实现如下所示: 1 //data增序排列 3 //非递归折半查找 4 int binarySearch(int * data, int keyValue, int len){ 5 int low=0,high=len-1,mid=0; 6 while (lowkeyValue)11 high=mid-1;12 else 13 low=mid+1;14 }15 return -1;16 }17 18 //递归折半查找19 int* binarySearchRecu... 阅读全文
摘要:
桶中黑白球问题 去年百度的笔试题目,网友说貌似是《编程之美》上面的题目。题目描述如下: 有一个桶,里面有白球、黑球各100个,取球的规则如下: 每次从桶里面拿两个球; 如果是两个同色的球,就再放入一个黑球; 如果是两个异色的球,就再放入一个白球。 问题是:最后桶里面只剩下一个黑球的概率是多少?刚开始... 阅读全文