E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
studio2013
基于visual
Studio2013
解决算法导论之013基数排序
题目基数排序解决代码及点评#include #include #include #include voidPrintArr(int*pnArr,intnLen) { for(inti=0;i=0;i--) { nArrR[pnArrTmp[pnArr[i]]-1]=pnArr[i]; pnArrTmp[pnArr[i]]=pnArrTmp[pnArr[i]]-1; } } intmain
yincheng01
·
2014-01-17 16:00
基于visual
Studio2013
解决算法导论之012计数排序
题目计数排序解决代码及点评#include #include #include #include #defineN5 voidPrintArr(int*pnArr,intnLen) { for(inti=0;i
yincheng01
·
2014-01-17 16:00
基于visual
Studio2013
解决算法导论之011快排改良
题目快排改良解决代码及点评#include #include #include #include #defineK3 voidPrintArr(int*pnArr,intnLen) { for(inti=0;inLeft&&nTmpK) { intnTmpPos=RandomPartition(pnArr,nLeft,nRight); QuickSort(pnArr,nLeft,nTmp
yincheng01
·
2014-01-17 16:00
基于visual
Studio2013
解决算法导论之010快排中应用插入排序
题目快排中引用插入排序解决代码及点评#include #include #include #include #defineK3 voidPrintArr(int*pnArr,intnLen) { for(inti=0;inLeft&&nTmpK) { intnTmpPos=RandomPartition(pnArr,nLeft,nRight); QuickSort(pnArr,nLeft
yincheng01
·
2014-01-17 16:00
基于visual
Studio2013
解决算法导论之009快速排序随机版本
题目快速排序随机版本解决代码及点评#include #include #include #include voidPrintArr(int*pnArr,intnLen) { for(inti=0;i
yincheng01
·
2014-01-17 15:00
基于visual
Studio2013
解决算法导论之008快速排序算法
题目快速排序解决代码及点评#include #include #include #include voidPrintArr(int*pnArr,intnLen) { for(inti=0;ipnArr[nKey]) { i++; Swap(&pnArr[i],&pnArr[j]); } } Swap(&pnArr[i+1],&pnArr[nRight]); returni+1; } //
yincheng01
·
2014-01-17 15:00
基于visual
Studio2013
解决算法导论之007优先队列(堆实现)
题目优先队列解决代码及点评#include #include #include #include intParent(inti) { return(i-1)/2; } intLeftChild(inti) { return2*i+1; } intRightChild(inti) { return2*i+2; } intMaximum(int*pnArr,intnLen) { if(NUL
yincheng01
·
2014-01-17 15:00
基于visual
Studio2013
解决算法导论之006最大堆排序
题目最大堆排序解决代码及点评#include #include #include #include voidPrintArr(int*pnArr,intnLen) { for(inti=0;ipnArr[i]) { nMaxPos=LChild; } else { nMaxPos=i; } if(RChildpnArr[nMaxPos]) { nMaxPos=RChild; } if(n
yincheng01
·
2014-01-17 15:00
基于visual
Studio2013
解决算法导论之004随机排列数组
题目随机排列数组解决代码及点评#include #include #include #include typedefstructNode { intnValue; int*pnValue; }Node; voidPrintArr(int*pnArr,intnLen) { for(inti=0;i0&&tmp.nValue
yincheng01
·
2014-01-17 15:00
基于visual
Studio2013
解决算法导论之005原地随机排列数组
题目原地随机排列数组解决代码及点评#include #include #include #include voidPrintArr(int*pnArr,intnLen) { for(inti=0;i
yincheng01
·
2014-01-17 15:00
基于visual
Studio2013
解决算法导论之003雇佣问题
题目雇用问题解决代码及点评#include #include #include #include voidPrintArr(int*pnArr,intnLen) { for(inti=0;i
yincheng01
·
2014-01-17 15:00
基于visual
Studio2013
解决算法导论之002归并排序
题目归并排序解决代码及点评#include #include #include #include voidPrintArr(int*pnArr,intnLen) { for(inti=0;inRight) { return; } if(nRight>nLeft) { //1分解 intnMid=(nLeft+nRight)/2; //2解决 MergeSort(pnArr,nLeft,n
yincheng01
·
2014-01-17 14:00
基于visual
Studio2013
解决算法导论之001插入排序
题目插入排序解决代码及点评#include #include #include voidInsertSort(int*pnArr,intnLen) { if(pnArr==NULL||nLen==0) { return; } for(inti=1;i0&&nTmp
yincheng01
·
2014-01-17 14:00
基于visual
Studio2013
解决面试题之1503最大公约数最小公倍数
题目解决代码及点评/* 求两个或N个数的最大公约数(gcd)和最小公倍数(lcm)的较优算法 */ #include usingnamespacestd; intGcd(inta,intb) { if(a
yincheng01
·
2013-12-22 23:00
基于visual
Studio2013
解决面试题之1409基数排序
题目解决代码及点评/* 基数排序 */ #include #include #include #include voidPrintArr(int*pnArr,intnLen) { for(inti=0;i=0;i--) { nArrR[pnArrTmp[pnArr[i]]-1]=pnArr[i]; pnArrTmp[pnArr[i]]=pnArrTmp[pnArr[i]]-1; } }
yincheng01
·
2013-12-22 23:00
基于visual
Studio2013
解决面试题之1408桶排序
题目解决代码及点评/* 桶排序 */ #include #include #defineSIZE100 voidbucket_sort(unsigned*,int);//桶排序函数的原型 voidprint(unsigned*,int);//打印函数的原型 intmain() { unsignedarray[SIZE]; inti=0; //为数组元素随机赋值 for(i=0;i
yincheng01
·
2013-12-22 23:00
基于visual
Studio2013
解决面试题之1207堆排序
题目解决代码及点评/* 堆排序 */ #include #include #include #include voidPrintArr(int*pnArr,intnLen) { for(inti=0;ipnArr[i]) { nMaxPos=LChild; } else { nMaxPos=i; } if(RChildpnArr[nMaxPos]) { nMaxPos=RChild; }
yincheng01
·
2013-12-22 23:00
基于visual
Studio2013
解决面试题之1405归并排序
题目解决代码及点评/* 归并排序 */ #include usingnamespacestd; constintN=10; intanthor[N]; voidMergeSort(int*array,intbegin,intend) { if(end-begin>1) { // MergeSort(array,begin,(begin+end)/2); MergeSort(array,
yincheng01
·
2013-12-22 23:00
基于visual
Studio2013
解决面试题之1404希尔排序
题目解决代码及点评/* 希尔排序 */ #include usingnamespacestd; constintN=10; voidshell_sort(constintlen,int*array) { intj,i,key; intgap=0; if(len0) { for(i=gap;i=0)&&(array[j]>key)) { array[j+gap]=array[j]; j
yincheng01
·
2013-12-22 22:00
基于visual
Studio2013
解决面试题之1402选择排序
题目解决代码及点评/* 选择排序 */ #include usingnamespacestd; intmain() { inta[10]; for(inti=0;i<10;i++) a[i]=rand()%100; for(inti=0;i<10;i++) { for(intj=i;j<10-i;j++) if(a[j]
yincheng01
·
2013-12-22 22:00
基于visual
Studio2013
解决面试题之1401冒泡排序
题目解决代码及点评/* 冒泡排序 */ #include usingnamespacestd; intmain() { inta[10]; for(inti=0;i<10;i++) a[i]=rand()%100; for(inti=0;i<10;i++) for(intj=0;j<10-i;j++) { if(a[j]
yincheng01
·
2013-12-22 22:00
基于visual
Studio2013
解决面试题之1403插入排序
题目解决代码及点评/* 插入排序 */ #include usingnamespacestd; intmain() { inta[10]; for(inti=0;i=j;k--) { a[k]=a[k-1]; } a[j]=temp; } } for(inti=0;i<10;i++) cout<
yincheng01
·
2013-12-22 22:00
基于visual
Studio2013
解决面试题之1310随机数
题目解决代码及点评/* 设rand(s,t)返回[s,t]之间的随机小数,利用该函数在一个半径为R的圆内 找随机n个点,并给出时间复杂度分析。 */ #include #include #include usingnamespacestd; voidGetNPointInCircle(intR,intn) { srand(time(NULL)); for(inti=0;i
yincheng01
·
2013-12-22 22:00
基于visual
Studio2013
解决面试题之1309求子集
题目解决代码及点评/* 把求子集运算转换为组合问题。 假设集合中包含N个元素,子集合数=C(N,0)+C(N,1)+...+C(N,N-1)+C(N,N),对于 任一个子集合,可以用一个N元组表示,即,其中Si取值范围为(0,1), 0表示不该子集合不包含该元素,1表示该子集合包含该元素。因此,求子集合就转换成了 罗列所示可能组合的算法。子集合数=2^n。 */ #include usin
yincheng01
·
2013-12-22 22:00
基于visual
Studio2013
解决面试题之1307二分查找
题目解决代码及点评/* 二分查找实现 */ #include usingnamespacestd; intBinarySearch(int*pnArr,intnLen,intnValue) { if(pnArr==NULL||nLennValue) { nRight=nMid-1; } else { nLeft=nMid+1; } } return-1; } intmain() { i
yincheng01
·
2013-12-22 22:00
基于visual
Studio2013
解决面试题之1306奇偶位数交换
题目解决代码及点评/* 将一个数中的偶数位bit和奇数位bit交换 */ #include usingnamespacestd; intSwapOddEvenBits(intn) { return((n&0xaaaaaaaa)>>1)|((n&0x55555555)<<1); } intmain() { cout<
yincheng01
·
2013-12-22 21:00
基于visual
Studio2013
解决面试题之1305字符串所有子集
题目解决代码及点评/* 若S是n个元素的集合,则S的幂集P(S)定义为S所有子集的集合。例如, S=(a,b,c),P(S)={(),(a),(b),(c),(a,b),(a,c),(b,c),(a,b,c)}给定S,写一递归算法求P(S)。 */ #include #include usingnamespacestd; charnArrTmp[20]=
yincheng01
·
2013-12-22 21:00
基于visual
Studio2013
解决面试题之1204大数组查找
题目解决代码及点评/* 有40亿个整数,在文件里保存,现在要找出这个文件里没有的某个整数,找到一个就行 这个40亿个整数大概要花掉4G内存,全部读出来是不可取的 我们可以通过位域来标记哪些存在哪些不存在 这样一个整数可以表示32个整数的存在情况,需要的内存是4G/32=1G/8=128M 然后将整数一个个读出来,根据整数的值,标记位域,最后再查找位域,哪个位置是0即可 */ #includ
yincheng01
·
2013-12-20 22:00
基于visual
Studio2013
解决面试题之1203转16进制输出
题目解决代码及点评/* 将数字转化成16进制输出 */ #include usingnamespacestd; char*get2String(longnum) { inti=0; char*buffer=NULL; char*temp=NULL; buffer=(char*)malloc(33); temp=buffer; for(i=0;i>(31-i); temp[i]=(
yincheng01
·
2013-12-20 22:00
基于visual
Studio2013
解决面试题之1202最大公共字符串
题目解决代码及点评/* 最大公共子字符串 */ #include"stdio.h" #include"string.h" #include"stdlib.h" intlongest_common_substring(char*str1,char*str2) { inti,j,k,len1,len2,max,x,y; len1=strlen(str1); len2=strlen(str2);
yincheng01
·
2013-12-20 21:00
基于visual
Studio2013
解决面试题之1201链表去重
题目解决代码及点评/* 链表去重复,只去除相邻重复的元素 如果要去除所有,那么先排序即可 */ #include usingnamespacestd; structstudent { intid; structstudent*next; }; typedefstructstudentSTD; STD*creat(intid) { STD*head; head=newSTD; head
yincheng01
·
2013-12-20 21:00
基于visual
Studio2013
解决面试题之1109全排列
题目解决代码及点评/* 用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列 */ #include usingnamespacestd; voidPerm(char*pszBuf,char*pBegin) { if(pszBuf==NULL||pBegin==NULL) { return; } if(*pBegin=='\0') { cout<
yincheng01
·
2013-12-20 21:00
基于visual
Studio2013
解决面试题之1105字符串压缩
题目解决代码及点评/* 字符串原地压缩 例如"aaabnndccdeee"压缩成"a3bn2dc2de3" */ #include usingnamespacestd; voidCondense(char*pszBuf1) { intnLen=strlen(pszBuf1); intnCount=0; inti,j; for(i=0;i1) { pszBuf1[i-1]=pszBuf1[
yincheng01
·
2013-12-20 21:00
基于visual
Studio2013
解决面试题之1102合并字符串
题目解决代码及点评/* 给出一个函数来合并两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠 重叠部分只要一份 */ #include usingnamespacestd; voidCopyStr(char*pszBuf1,char*pszBuf2,char*pszBuf3) { intnLen1=strlen(pszBuf1); intnLen2=strlen(pszBu
yincheng01
·
2013-12-20 21:00
基于visual
Studio2013
解决面试题之1101差值最小
题目解决代码及点评/* 有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求 出是哪两个数 */ #include usingnamespacestd; intFindMinGap(int*pnArr,intnLen) { if(pnArr==NULL||nLenabs(pnArr[i]-pnArr[j])) { nMinGap=abs(pnArr[i]-pn
yincheng01
·
2013-12-20 21:00
基于visual
Studio2013
解决面试题之1009兄弟字符串
题目解决代码及点评/* 匹配兄弟字符串,字符串内容一样,但是顺序不一样,称之为兄弟字符串 */ #include usingnamespacestd; intisBroStr(char*str1,char*str2) { //整个数组,一个字符串对整个数组累加,一个字符串对这个数组累-,最后这个数组应该是0 inta[26*2]={0}; inti,strLen; if(!str1&&!
yincheng01
·
2013-12-20 21:00
基于visual
Studio2013
解决面试题之1007鸡蛋和篮子
题目解决代码及点评/* n个鸡蛋放m个篮子,篮子不能为空,有多少种方法 */ #include usingnamespacestd; constintN=6; constintM=4; voidput(intbasket[],integg) { if(egg<=0) { for(inti=0;i
yincheng01
·
2013-12-20 21:00
基于visual
Studio2013
解决面试题之1006判断升序
题目解决代码及点评/* 判断是不是升序序列,通过递归即可 */ #include usingnamespacestd; boolgo(int*array,intn) { if(n==4) { cout<<"是递增"; returntrue; } if(array[n]<=array[n+1]) { returngo(array,n+1); } cout<<"不是递增"; retur
yincheng01
·
2013-12-20 21:00
基于visual
Studio2013
解决面试题之1004最长等差数列
题目解决代码及点评/* 求数组中最长的等差数列 只需要遍历字符串即可 */ #include #include usingnamespacestd; constintN=10; constintINVALID_IDX=-1; voidshow(int*a,intn) { for(inti=0;i**dp=newpair*[R]; for(inti=0;i*row=newpair[N];
yincheng01
·
2013-12-20 21:00
基于visual
Studio2013
解决面试题之1003字符串逆序
题目解决代码及点评//1.10.3不开辟空间字符串逆序.cpp:定义控制台应用程序的入口点。 /* 字符串逆序 遍历并且交换字符即可 */ #include usingnamespacestd; intmain() { chara[20]="helloworld"; for(inti=0;i
yincheng01
·
2013-12-20 21:00
基于visual
Studio2013
解决面试题之1002公共子串
题目解决代码及点评/* 求两个字符串的最小公共子串 这道题简单的两个字符串遍历即可 */ #include usingnamespacestd; constintN=1000; char*go(char*str1,char*str2) { intmaxindex; intmaxlength=0; inti,j; for(i=0;str1[i];i++) { for(j=0;str
yincheng01
·
2013-12-20 21:00
基于visual
Studio2013
解决面试题之1001去除数字
题目解决代码及点评/* 在字符串中删除数字,保持非数字字符的顺序 解决办法,遍历字符串,从第一个数字开始 将后续的非数字字符串一次填入 */ #include usingnamespacestd; voidgo(char*str) { inti,j; //找到数字字符部分 for(i=0;str[i]&&(str[i]'9');) { i++; } j=i; //从这个位置开始插
yincheng01
·
2013-12-20 01:00
基于visual
Studio2013
解决面试题之0909移动星号
题目解决代码及点评/* 函数将字符串中的字符'*'移到串的前部分 但是不能改变非*字符的顺序,比如a**b**c**经过变化后是******abc 如果没有顺序的需求,那么只要跟奇偶站队一样进行交换 */ #include usingnamespacestd; voidChangeStr(char*pszBuf) { intnLen=strlen(pszBuf); inti=nLen
yincheng01
·
2013-12-20 01:00
基于visual
Studio2013
解决面试题之0908最大连续数字串
题目解决代码及点评/* 求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789") 这道题的解法还是从头到尾的遍历即可 */ #include usingnamespacestd; intFindMaxLen(char*pszBuf,char*pszOutPut) { intnMaxLen=0; intnTmpLen=0; intnTmpPos
yincheng01
·
2013-12-20 01:00
基于visual
Studio2013
解决面试题之0907大数乘法
题目解决代码及点评/* 大整数数相乘的问题 两个超过范围的大数进行相乘,需要用字符串来表示数组 进行相乘 */ #include usingnamespacestd; voidMultiple(char*pszBuf1,char*pszBuf2,char*pszBuf3) { intnLen1=strlen(pszBuf1); intnLen2=strlen(pszBuf2); in
yincheng01
·
2013-12-20 01:00
基于visual
Studio2013
解决面试题之0905子串数量
题目解决代码及点评/* 已知一个字符串,比如asderwsde,寻找其中的一个子字符串比如sde的个数,如果没有返回0, 有的话返回子字符串的个数 解决办法:简单遍历即可 */ #include usingnamespacestd; //查找子串 intSubStrCount(char*pszBuf,char*pszSub) { inti,j; intnLen1=strlen(pszB
yincheng01
·
2013-12-20 01:00
基于visual
Studio2013
解决面试题之0902内存拷贝
题目解决代码及点评/* 用C语言实现函数void*memmove(void*dest,constvoid*src,size_tn) memmove函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。 简单循环拷贝即可,但是这道题,要深究起来很多问题,比如内存区域是重叠的,有可能左边重叠也可能右边重叠 */ #include #include #include voi
yincheng01
·
2013-12-20 01:00
基于visual
Studio2013
解决面试题之0901奇偶站队
题目解决代码及点评/* 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数 解决方法: 两边同时遍历,如果遇到左边偶数或者右边基数,则交换 */ #include usingnamespacestd; voidSort(int*pnArr,intnLen) { inti=0; intj=nLen-1; //两边同时遍历 while(i
yincheng01
·
2013-12-20 01:00
基于visual
Studio2013
解决面试题之0808寻找中间数
题目解决代码及点评/* 在一个数组中,寻找这样的数,它左边的数都比它小,右边的数都比它大 通过两重循环简单实现 */ #include usingnamespacestd; intmain() { inta[10]={2,1,0,4,3,5,7,8,6,9}; //对每个数进行处理 for(inti=0;ia[i]) flag=1; if(j>i&&a[j]
yincheng01
·
2013-12-20 01:00
基于visual
Studio2013
解决面试题之0807strstr函数
题目解决代码及点评/* 写strstr函数 简单的遍历去查找吧 */ #include #include constchar*my_strstr(constchar*str,constchar*sub_str) { //遍历 for(inti=0;str[i]!='\0';i++) { inttem=i;//tem保留主串中的起始判断下标位置 intj=0; //与substr去匹
yincheng01
·
2013-12-20 01:00
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他