自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

silenough的专栏

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

  • 博客(39)
  • 收藏
  • 关注

转载 UTHash demo

uthash使用demo

2022-06-12 22:20:35 94 1

原创 使用qsort函数对二维数组排序

qsort使用

2022-06-05 18:42:31 1007 2

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

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

2012-11-03 16:48:03 3962 2

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

e.g.  123342222,转换为1121324124利用sprintf()函数,将任意整数打印到字符串中void ConvertStr(char * pStr, char * pOutput){ char * pCurrent =pStr; char * pNext; int nCount = 1; int i = 0; while (*pCurrent != '\0'

2012-08-05 21:05:34 2035

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

e.g   "university of  electronic science and technology of china“  单词逆置为”china of technology and science  electronic of university“void func(const char * pStr){ char *p1 = const_cast (pStr); int

2012-08-02 20:21:12 1821

原创 模拟C函数库strstr()函数

函数返回一个指针,它指向字符串strCharSet首次出现于字符串string中的位置,如果没有找到,返回NULL。const char * MyStrStr(const char * string, const char * strCharSet){ char * p1 = const_cast (string); //去常量性 char * p2 = const_cast (str

2012-08-02 09:30:22 993

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

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

2012-07-30 21:11:06 3908 1

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

思想:以字符串“abcbcbcabc”为例step 1. 穷举出源字符串的所有后缀:substr[0] =abcbcbcabcsubstr[1] =bcbcbcabcsubstr[2] =cbcbcabcsubstr[3] =bcbcabcsubstr[4] =cbcabcsubstr[5] =bcabcsubstr[6] =cabcsubstr[7] =abc

2012-07-29 21:52:03 1234

原创 约瑟夫问题

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

2012-07-10 20:13:43 690

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

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

2012-05-11 19:20:53 2855 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 * col != len) //矩阵不为方阵则提示矩阵无效 { cout << "Matrix I

2012-05-11 11:33:43 4612

转载 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 a=25; b = 5 ; k=2a==b^k 故T(n)=O(n^k*logn)=O(n

2012-05-10 11:04:19 3449 2

原创 int atoi(const char * str)

#include   int atoi( const char *str );功能:将字符串str转换成一个整数并返回结果。参数str 以数字开头,当函数从str 中读到非数字字符则结束转换并将结果返回。例如,    i = atoi( "512.035" );i 的值为 512.自己写的实现如下://根据位数返回10的整倍数,如2位则返回10,

2012-05-07 19:44:12 6227

原创 第12章 取样问题

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

2012-05-05 21:08:46 758

原创 第11章 排序

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

2012-05-03 21:44:56 752

原创 动态创建二维数组

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

2012-04-09 20:03:15 564

原创 第八章 算法设计技术

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

2012-04-09 19:42:40 752

原创 归并排序

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

2012-03-02 15:38:54 608

原创 第4章 编写正确的程序

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

2012-02-12 20:17:55 1431 1

原创 选择排序法

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

2012-01-11 21:01:01 9451 1

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

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

2012-01-09 21:04:28 1622 3

原创 快速排序

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

2012-01-09 20:59:05 778

原创 插入排序

1. 直接插入法    思路:将一个记录插入到已排序号的有序表中。先将序列中的第一个记录看成是一个有序的子序列,然后从第二个记录其逐个进行插入,直至整个序列变成按关键字排列的有序序列。//pArry[i]表示当前要判定的元素,将其与其前面已排序好的所有元素相比,//计算出该元素需要插入的位置j,后移pArry[j]至pArry[i - 1]元素void InsertSort(int

2012-01-08 20:11:23 909

原创 青蛙跳台阶问题

(1)一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。(2)一只青蛙一次可以跳上1级台阶,也可以跳上2 级……它也可以跳上n 级,此时该青蛙跳上一个n级的台阶总共有多少种跳法?分析:1)当n = 1, 只有1中跳法;当n = 2时,有两种跳法;当n = 3 时,有3种跳法;当n = 4时,有5种跳法;当n = 5时,有8种跳法;

2012-01-08 11:32:59 30056 6

原创 二维数组中的查找

二维数组中的查找  在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。  例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字7,则返回true;如果查找数字5,由于数组不含有该数字,则返回false。

2012-01-05 20:40:27 1108

原创 第3章 数据决定程序结构

1. 本书出版之时,美国的个人收入所得税分为5种不同的税率,其中最大的税率大约为40%.以前的情况则更为复杂,税率也更高。下面所示的程序文本采用25个if语句的合理方法来计算1978年的美国联邦所得税。税率序列为0.14, 0.15, 0.16, 0.17, 0.18.....。序列中此后的计算大于0.01.有何建议呢?if income     tax = 0;else if inc

2011-12-28 19:54:26 640

转载 MFC中ListControl控件的使用

列表控件可以看作是功能增强的 ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。MFC 中使用 CListCtrl 类来封装列表控件的各种操作。通过调用 BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle 中可以使用以下一些列表控件的专用风格:

2011-12-14 11:07:25 743

转载 MFC CListCtrl 使用介绍

列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。MFC中使用CListCtrl类来封装列表控件的各种操作。通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些列表控件的专用风格:LVS_I

2011-12-14 11:06:29 724

原创 第二章 啊哈!算法

A. 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数(在文件中至少缺少一个这样的数---为什么?)。在具有足够内存的情况下,如何解决该问题?如果有几个外部的“临时”文件可用,但是仅有几百字节的内村,又该如何解决该问题?     因为2^32 大于40亿,所以文件中至少缺失一个整数。我们从表示每个整数的32位的视角来考虑二分搜索,算法的第一趟(最多)读取4

2011-12-04 20:43:14 5412 2

原创 查找算法

一 . 静态查找表1. 顺序查找     算法思想:从表中第一个记录开始,逐个进行记录的关键字和给定值进行比较,若某个记录的关键字和给定值比较相等,则查找成功;反之,若直至最后一个记录,其关键字和给定的值都不想等,则表明表中没有所查找的记录,查找失败。     性能:平均查找长度ASL=(n+1)/22. 二分查找(折半查找) --------前提必须是有序表,性能只有在均

2011-11-30 20:50:36 819

原创 第一章 开篇(2)

习题 5. 那个程序员说他有1MB的可用存储空间,但是我们概要描述的代码需要1.25MB的空间。他可以不费力气的索取到额外的空间。如果1MB空间是严格的边界,你会推荐如何处理呢?你的算法的运行时间又是多少?    用位向量表示10 000 000个整数需要10 000 000个位,10000000 bits = 1.192MB.所以程序员可利用的1MB空间是显然不够的,可以采用两趟算法,第一趟

2011-11-14 21:34:00 989

转载 boost_1.47在VS2010下的安装

第一步:到官网www.boost.org,下载boost最新版boost_1_47_0.zip 第二步:将boost压缩包解压到C盘根目录下(在C盘操作简单,不会出错),目录为C:\BOOST_1_47_0,里面就是boost的源码和需要编译的文件及文档资料 第三步:用打开一个cmd命令窗口,在C:\Program Files\Microsoft Visual Studio 10.

2011-11-13 21:12:44 3087 1

原创 第一章 开篇

习题 1. 如果不缺内存,如何使用一个具有库的语言来实现一种排序算法以表示和排序集合?       由于目前只学习了C和C++,所以只讨论C和C++中具有排序算法的库。对于C,有stdlib.h中的快速排序qsort函数;对于C++,其STL中的algorithm包含的一个排序算法sort函数。#include void qsort( void *buf, size_t num, s

2011-11-10 17:23:37 1230

转载 MFC中消息响应机制

由于视类窗口始终覆盖在框架类窗口之上,因此所有操作,包括鼠标单击、鼠标移动等操作都只能由视类窗口捕获。一个MFC消息响应函数在程序中有三处相关信息:函数原型、函数实现和以及用来关联消息和消息响应函数的宏。(1)在消息响应函数的原型代码中,函数声明的前部有一个afx_msg限定符,也是一个宏,该宏表明这个函数是一个消息响应函数的声明。(2)消息映射宏:在视图类的源文件中,BEGIN_MESS

2011-11-07 11:11:04 6496 2

转载 华为、联想等名企笔试题总汇

■华为笔试题1.请你分别画出OSI的七层网络结构图和TCP/IP的五层结构图。 2.请你详细地解释一下IP协议的定义,在哪个层上面?主要有什么作用?TCP与UDP呢 ? 3.请问交换机和路由器各自的实现原理是什么?分别在哪个层次上面实现的? 4.请问C++的类和C里面的struct有什么区别? 5.请讲一讲析构函数和虚函数的用法和作用。 6.全局变量和局部变量有什么区别?是

2011-10-24 17:24:06 2648

转载 C++内存地址分配和内存区划分简介

第一部分 C++内存地址分配简介1 内存地址是从高地址到低地址进行分配的:  int i=1;int j=1;cout2 函数参数列表的存放方式是,先对最右边的形参分配地址,后对最左边的形参分配地址。3 Little-endian模式的CPU对操作数的存放方式是从低字节到高字节的0x1234的存放方式入下:0X4000 0x340X4001 0x12

2011-07-07 22:00:04 6504

转载 判断单链表里面有没有环

题目:0.如何判断单链表里面是否有环?算法的思想是设定两个指针p, q,其中p每次向前移动一步,q每次向前移动两步。那么如果单链表存在环,则p和q相遇;否则q将首先遇到null。这里主要理解一个问题,就是为什么当单链表存在环时,p和q一定会相遇呢?假定单链表的长度为n,并且该单链表是环状的,那么第i次迭代时,p指向元素i mod n,q指向2i mod n。因此当i≡2i(mo

2011-07-07 21:59:17 620

原创 VS2008中,PlaySound找不到标识符解决办法

首先必须在开头引入头文件#include 在解决方案中>>>>右击选择>>>>属性>>>>配置属性> >>>链接器>>>>输入>>>>附加依赖项中,写入winmm.lib,方可。

2011-07-07 21:56:21 4307

转载 VC中CDC与HDC的区别以及二者之间的转换

CDC是MFC的DC的一个类HDC是DC的句柄,API中的一个类似指针的数据类型.MFC类的前缀都是C开头的H开头的大多数是句柄这是为了助记,是编程读/写代码的好的习惯.CDC中所有MFC的DC的基类.常用的CClientDC dc(this);就是CDC的子类(或称派生类).C

2011-07-07 21:51:09 3459

空空如也

空空如也

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

TA关注的人

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