silenough的专栏

记录点滴,回头看.....

在Qt Creator 中创建工程时,工程的路径中不能包含有中文,否则编译不通过

编译错误提示如下: 主要提示是:“Connot find file :xxxxx“ , ”xxxx“为创建的工程的路径.

2012-11-03 16:48:03

阅读数 2683

评论数 2

转换字符串格式为:源字符串里的字符+该字符连续出现的个数

e.g.  123342222,转换为1121324124 利用sprintf()函数,将任意整数打印到字符串中 void ConvertStr(char * pStr, char * pOutput) { char * pCurrent =pStr; char * pNext; in...

2012-08-05 21:05:34

阅读数 1876

评论数 0

将一句话里的单词进行逆置,标点符号不逆置

e.g   "university of  electronic science and technology of china“  单词逆置为”china of technology and science  electronic of university“ void func(c...

2012-08-02 20:21:12

阅读数 1259

评论数 0

模拟C函数库strstr()函数

函数返回一个指针,它指向字符串strCharSet首次出现于字符串string中的位置,如果没有找到,返回NULL。 const char * MyStrStr(const char * string, const char * strCharSet) { char * p1 = const_...

2012-08-02 09:30:22

阅读数 876

评论数 0

求一个字符串中出现的相同且长度最长的字符串,及其首字符的位置

思路:对源字符串所有后缀的所有子串,从每一个后缀的最长子串开始,分别从前向和后向开始在源字符串中查找匹配的子串,若两次查找位置不一致则说明存在重复的长度最长的字串,并返回前向查找时的位置。 e.g.  string = “abcedfghiabckl‘,当使用子串”abc“在源字符串中分别前向...

2012-07-30 21:11:06

阅读数 3508

评论数 1

求一个字符串中连续出现次数最多的字串

思想:以字符串“abcbcbcabc”为例 step 1. 穷举出源字符串的所有后缀: substr[0] =abcbcbcabc substr[1] =bcbcbcabc substr[2] =cbcbcabc substr[3] =bcbcabc substr[4] =cbcabc...

2012-07-29 21:52:03

阅读数 1075

评论数 0

约瑟夫问题

typedef struct _Node { int element; _Node * next; }Node; //约瑟夫问题-n(1, 2,...n)个人,从第k个报数,报数到m的那个人出列, //他的下一个人从1开始报数,报数到m的那个出列,以此类推 void Josephus(int...

2012-07-10 20:13:43

阅读数 617

评论数 0

找到单项链表中间那个元素,如果有两个则取前面一个

单链表节点的数据结构: typedef struct _node { int element; _node * next; }Node; //p为指向单链表的第一个节点 Node * FindMiddleElement(Node * &p) { Node * head = p; ...

2012-05-11 19:20:53

阅读数 2618

评论数 4

实现两个N*N矩阵的乘法,矩阵由一维数组表示

void MatrixMultiplication(int * pArry1, int *pArry2, int * pDestArry, int len) { int row ; int col; row= col = (int)sqrt((double)len); if (row * ...

2012-05-11 11:33:43

阅读数 4118

评论数 0

T(n) = 25T(n/5)+n^2的时间复杂度

对于T(n) = a*T(n/b)+c*n^k;T(1) = c 这样的递归关系,有这样的结论: if (a > b^k)   T(n) = O(n^(logb(a)));logb(a)b为底a的对数 if (a = b^k)   T(n) = O(n^k*logn); if (a...

2012-05-10 11:04:19

阅读数 3000

评论数 2

int atoi(const char * str)

#include   int atoi( const char *str ); 功能:将字符串str转换成一个整数并返回结果。参数str 以数字开头,当函数从str 中读到非数字字符则结束转换并将结果返回。例如,     i = atoi( "512.035&qu...

2012-05-07 19:44:12

阅读数 4429

评论数 0

第12章 取样问题

问题:从0~n-1中随机输出m个有序整数。 #include #include #include using namespace std; //返回至少30个随机位 int bigrand() { return RAND_MAX * rand() + rand(); } //产生[l...

2012-05-05 21:08:46

阅读数 572

评论数 0

第11章 排序

1. 插入排序----逐步优化提升其性能 //循环中使用变量j跟踪被筛选的元素,只要该元素没有前驱(即j>0)且没有到达最终位置(即该元素小于它的前驱) //则循环就交换该元素和它的前驱 void InsertSort1(int * pArry, int len) { int i, ...

2012-05-03 21:44:56

阅读数 566

评论数 0

动态创建二维数组

void D2Arry(int ** &p, int row, int col) { p = new int*[row]; // 分配一个指针数组,用于存储分别指向二维数组的每行行指针 int i; for (i= 0; i < row; i++) { ...

2012-04-09 20:03:15

阅读数 460

评论数 0

第八章 算法设计技术

本章研究的问题及其四种算法: //立方算法 int cube_algorithm(int arry[], int n) { int maxsofar = 0; for (int i = 0; i < n; i++) { for (int j = i; j < n; j+...

2012-04-09 19:42:40

阅读数 647

评论数 0

归并排序

将待排序的元素序列分成两个长度相等的子序列,为每个子序列排序,然后再将它们合并成一个序列。合并两个子序列的过程称为两路归并,核心操作是将一维数组中前后相邻的两个有序序列归并为一个有序序列。  一次2-路归并排序的算法: //一次归并排序算法,k为子序列长度,n为数组长度 void Merg...

2012-03-02 15:38:54

阅读数 505

评论数 0

第4章 编写正确的程序

习题2.  如果原始的二分搜索对你来说太容易了,那么请试试这个演化后的版本:把t在数组x中第一个出现的位置返回给p(如果存在多个t的话,原始的算法会任意返回其中的一个),要求代码对数组元素进行对数次比较(该任务可以在log2(n)次比较之内完成)。 算法步骤:1) 按正常的二分查找算法查找t在数...

2012-02-12 20:17:55

阅读数 1170

评论数 1

选择排序法

1. 直接选择排序法     基本思想:每一趟(第i趟, i  = 0, 1, 2, ......n-1)在后面n-i个待排序记录中选出关键字最小的记录,作为有序记录序列的第i个记录。直到第n-2趟完,待排记录只剩下一个,不完再选了! //直接选择排序法 void SelectionSor...

2012-01-11 21:01:01

阅读数 9236

评论数 1

腾讯官方微博出题,半小时写出程序可当初级程序员

腾讯官方微博出题,半小时写出程序可当初级程序员: 某一游戏中有一把武器有1到9个等级,每次升级成功的概率为30%,失败的概率为70%,成功升1级,失败降1级,降到一级不能再降,升到9级不能再升,问1000次内升到9级的概率。

2012-01-09 21:04:28

阅读数 1475

评论数 3

快速排序

1. 冒泡排序(稳定的)      首先将第一个记录的关键字与第二个记录的关键字比较,按照升序或者降序,将两个记录交换。然后比较第二个记录和第三个记录的关键字。依次类推,直到第n-1个记录和第n个记录的关键字进行比较。上述过程即称为一趟排序,第一趟排序完后,某个记录的关键字最小或者最大的排列到整...

2012-01-09 20:59:05

阅读数 670

评论数 0

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