- 博客(55)
- 收藏
- 关注
原创 关于枚举类型的一些总结
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-11-13 14:41:35
509
转载 Servlet 工作原理解析
Servlet 工作原理解析Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求。本文将带你认识 Java Web 技术是如何基于 Servlet 工作,你将知道:以 Tomcat 为例了解 Servlet 容器是如何工
2017-03-08 16:39:44
334
原创 对servlet的简单了解
1.servlet的简介Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。Servlet 可以使用 javax.servlet 和 jav
2017-03-08 16:24:56
333
原创 JVM中一些参数
JVM中的一些参数设置:堆:-Xms:设置堆的初始化值,即最小值-Xmx:设置堆的最大值-Xmn:设置堆内存年轻代。整个堆内存大小 = 新生代大小 + 老生代大小 + 持久代大小。持久代一般固定大小为64m,所以增大新生代后,将会减小老生代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。 -XX:PermSize:设置堆内存持久代。-XX:MaxNewSi
2017-03-08 14:39:16
346
原创 内存溢出(OutOfMemoryError)
内存溢出:内存溢出(out of memory)就是内存不够,当所需要的内存超出分配的内存时,就会导致内存溢出。比如下面的程序:List list=new ArrayList();while(true){ list.add("你好");}出现异常: 内存溢出在系统开发和测试阶段并不容易被发现,当系统正式上线一般时间后,操作的并发量上
2017-03-07 17:33:07
790
原创 浅谈“==”和equals的区别
区别:(1)“==”是运算符号,equals是一个方法(2)只要是new出来的对象,“==”不仅比较值,而且还比较地址,只有两个都相同时,才返回true 而equals是只比较值,值相同则返回true.例如: Integer a=new Integer(1);Integer b=new Integer(1);System.out.prin
2017-03-07 16:44:48
271
转载 静态链接库LIB和动态链接库DLL的区别
静态链接库LIB和动态链接库DLL的区别一、 静态链接库与动态链接库区别静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接
2015-09-30 14:33:33
307
原创 循环有序数组的查找
//有一个循环有序数组A,如何从这样的数组中寻找一个特定的元素呢?利用折半查找的思想#includeusing namespace std;int search(int data[],int low,int high,int key){ while(low<=high) { int mid=(high+low)/2; if(key==data[mid]) return m
2015-07-16 22:14:26
341
原创 折半查找
//折半查找又称为二分查找,仅适用于事先已经排好序的顺序表。其查找的基本思想是:首先将给定值key与表中中间位置的关键字进行比较,若//相等,则查找成功,返回该元素的存储位置;若不等,则所需查找的元素只能在中间数据以外的前半部分或后半部分中。然后在缩小的范围内//继续进行同样的查找,如此重复直到找到为止。算法如下:#includeusing namespace std;int Binar
2015-07-16 21:44:25
396
原创 原路归并排序
//原地归并排序不需要辅助数组即可归并。关键在于merge这个函数。#includeusing namespace std;void reverse(int *data,int n){ for(int i=0;i<n/2;i++) { swap(data[i],data[n-i-1]); }}//将含有n个元素的E数组向左循环移位i个位置void exchange(in
2015-07-11 17:42:08
703
原创 将数组b合并到数组a中
//给定两个有序数组a和b,已知数组a末尾还有足够的空间容纳b,写一个函数将数组b合并到数组a中。//n:数组a中的元素个数//m:数组b中的元素个数#includeusing namespace std;void merge(int a[],int b[],int n,int m){ int k=n+m-1; int i=n-1; int j=m-1; while(i>=0&
2015-07-10 16:47:14
1138
原创 合并两个排好序的链表
//合并两个有序的链表,使用递归和非递归的思想#includeusing namespace std;struct ListNode{ int m_nValue; ListNode* m_pNext;};ListNode* CreateListNode(int value){ ListNode* pNode = new ListNode(); pNode->m_n
2015-07-10 16:19:50
435
原创 二路归并排序及数组中逆序对的计算
//二路归并排序,并计算逆序对的个数.二路归并排序算法的性能分析:空间复杂度为O(n),时间复杂度为O(nlog2n),具有稳定性#includeusing namespace std;int count=0;//计算数组中逆序对的个数//设两段有序表data[low...mid]、data[mid+1...high]存放在同一顺序表中相邻的位置上,先将他们复制到辅助数组b中。每次从对应
2015-07-10 10:28:07
645
原创 一个数组中存储有且仅有大写和小写字母,编写一个函数对数组内的字母重新排列,让小写字母在所有大写字母之前
//一个数组中存储有且仅有大写和小写字母,编写一个函数对数组内的字母重新排列,让小写字母在所有大写字母之前#includeusing namespace std;void Partition(char *a,int low,int high){ if(a==NULL||low>=high||low<0||high<0) return; while(low<high) { wh
2015-07-09 22:50:59
1152
原创 冒泡排序
冒泡排序的思想是:假设待排序表长为n,从前往后(或从后往前)两两比较相邻元素的值。其空间复杂度为O(1),时间复杂度为O(n^2),具有稳定性,每一趟排序都会将一个元素放到其最终的位置上#includeusing namespace std;void BubbleSort(int *data,int len){ if(data==NULL||len<=0) return;
2015-07-09 22:48:22
263
原创 快速排序
快速排序的思想史基于分治的,其是递归的,需要 借助一个递归栈来保存每一层递归调用的必要信息,所以其空间复杂度为O(log2n),时间复杂度为O(nlog2n),快速排序是所有内部排序算法中平均性能最优的排序算法#include#includeusing namespace std;int RandomInRange(int start,int end){ srand(time
2015-07-09 22:43:51
321
原创 希尔排序
希尔排序的而思想是:先将待排序表分割成若干形如L[i,i+d,i+2d,...i+kd]的特殊子表,分别进行插入排序,当整个表中元素基本有序时,再对全体记录进行一次直接插入排序。//d:增量其空间复杂度为O(1),时间复杂度为O(n^1.3)#includeusing namespace std;void swap(int *a,int *b){ int c=*a;
2015-07-09 22:32:30
218
原创 选择排序
选择排序的思想是:每一趟在后面n-i+1个待排元素中选取关键字最小的元素,作为有序子序列的第i个元素。每排一次就可以确定一个元素的位置,其空间复杂度为O(1),时间复杂度为O(n^2),是一个不稳定的排序算法。#includeusing namespace std;void SelectSort(int *data,int len){ if(data==NULL||len<=0)
2015-07-09 22:31:19
216
原创 插入排序
插入排序是一直最直接的排序方法,其基本思想在于每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,知道全部记录查完为止。其时间复杂度为O(n^2),空间复杂度为O(1).具有稳定性#includeusing namespace std;void InsertSort(int *data,int len){ if(data==NULL||len<=0)
2015-07-09 22:25:14
276
原创 堆排序
#includeusing namespace std;//array是待调整的堆数组,i是待调整的数组元素的位置,nlength是数组的长度//本函数功能是:根据数组array构建大根堆void HeapAdjust(int data[],int i,int len){ //子结点的位置=2*(父结点位置)+1 int nchild; for(;2*i+1<len;i=nchi
2015-07-09 22:20:32
238
原创 用堆排序的思想求最小的k个数,处理海量数据
//最小的k个数//输入n个整数,输出其中最小的k个数//解答:虽然利用快排的思想很好的解决了问题,但是也有限制,首先我们需要一次性读入所以的数据,其次,需要修改输入的数组//利用堆排序来解决此问题,此种方法适合处理海量数据//首先我们先读入k个元素创建一个大小为k的大根堆,然后我们依次读入剩下的数据,如果当前数据比大根堆的堆顶小,则用这个数代替当前//堆顶,并调整堆使其
2015-07-09 22:11:50
817
1
原创 判断IP地址的合法性
//现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数//(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。//现在需要你用程序来判断IP是否合法。#includeusing namespace std;bo
2015-07-09 11:37:59
1309
原创 等差数列
//等差数列//功能:等差数列 2,5,8,11,14。。。。//输入:正整数N >0//输出:求等差数列前N项和//返回:转换成功返回 0 ,非法输入与异常返回-1#includeusing namespace std;bool getResult(int n){ if(n return -2; int a=2; int b=a; f
2015-07-09 11:36:26
416
原创 输入整型数组和排序标识,对其元素按照升序或降序进行排序
//输入整型数组和排序标识,对其元素按照升序或降序进行排序#include#includeusing namespace std;int cmp0(int x,int y){ return x>y;}int cmp1(int x,int y){ return x}void sortIntegerArray(int* pIntegerArray
2015-07-09 11:35:16
816
原创 如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。
//如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。//实现以下接口://输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用)//按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出//清空目前的统计结果,重新统计//调用者会保证://输入的字符串以‘\0’结尾。
2015-07-09 11:32:48
2579
原创 从输入任意个整型数,统计其中的负数个数并求所有非负数的平均值
//从输入任意个整型数,统计其中的负数个数并求所有非负数的平均值#include#include#includeusing namespace std;void getResult(vector& data,int len){ if(data.size()==0||len return; int count=0; double avg=0.0;
2015-07-09 11:31:39
5827
原创 字符串的翻转
//将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 如:输入“I am a student”,输出“tneduts a ma I”。#includeusing namespace std;void reverse(char *pBegin,char* pEnd){ if(pBegin==NULL||pEnd==NULL) return;
2015-07-09 11:30:58
329
原创 找出给定字符在字符串中出现的次数
//写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写#includeusing namespace std;void getResult(char *str,char s){ if(str==NULL||s==NULL) return; int len=strlen(str); int
2015-07-09 11:29:09
1168
原创 字符串的分割
//连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;//长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。#includeusing namespace std;void getResult(char *str){ if(str==NULL) return; while(1) { if(strlen(str) {
2015-07-09 11:27:14
241
原创 将一个十六进制的字符串转化为一个十进制的字符串
//写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串#includeusing namespace std;void getresult(char *str){ if(str==NULL) return ; int sum=0; int quan=1; int len=strlen(str); for(int i=len-1;i
2015-07-09 11:26:19
370
原创 求一个整数四舍五入后的结果,该整数可以是正数负数
//写出一个程序,接受一个浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。#includeusing namespace std;void interge(float num){ int flag=0; if(num { flag=1; num=-num; } int n=(int)num; f
2015-07-09 09:41:59
605
原创 数字的颠倒
#includeusing namespace std;void reverse(int num){ if(num return ; int temp; int i=0; char str[200]; if(num==0) cout while(num) { temp=num%10; str[i]=temp+'0';
2015-07-09 09:39:59
419
原创 编写程序时关于字符串时的一些主要函数
1.string其支持长度可变的字符串,是一个标准的库,在使用时需要加#include头文件,可用getline函数读取整行文本,亦可用cin读取一个以空白字符分割的字符串(1)getline函数:接受两个参数,一个输入流对象和一个string对象;它从输入流的下一行读取,并保存读取的内容到string中,但不包括换行符;但是getline函数并不忽略行开头的换行符,所以在使用此函数时,如
2015-07-08 21:09:14
441
原创 图片整理
//Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。//请大家给Lily帮忙,通过C语言解决。#include#include#includeusing namespace std;void getResult(char* s){ int len=strlen(s); if(len10
2015-07-08 21:06:33
278
原创 输入一个10进制数字,请计算该数字对应二进制中0的个数,注意左数第一个1之前的所有0都不需要计算。不需要考虑负数的情况。
//输入一个10进制数字,请计算该数字对应二进制中0的个数,注意左数第一个1之前的所有0都不需要计算。不需要考虑负数的情况。#includeusing namespace std;int getResult(int n){ if(n==0) return -1; int count=0; char str[100]; int i=0; while(
2015-07-08 21:05:47
960
原创 求整数的Root:给定正整数,求每位数字之和;如果和不是一位数,则重复
//求整数的Root:给定正整数,求每位数字之和;如果和不是一位数,则重复//用递归求解数字基#includeusing namespace std;int sumnums(int n){ if(n return n; int sum=0; while(n) { sum+=n%10; n/=10; } return sumnum
2015-07-08 21:04:32
330
原创 判断我国公民的身份证是否合法
//我国公民的身份证号码特点如下: //1、 长度为18位;//2、 第1~17位只能为数字;//3、 第18位可以是数字或者小写英文字母x。//4、 身份证号码的第7~14位表示持有人生日的年、月、日信息。//例如:511002198808080111或51100219880808011x。//请实现身份证号码合法性判断的函数。除满
2015-07-08 21:02:22
685
原创 出牌,用程序判断手中的牌是否能够压过对方出牌
//规则:出牌牌型有5种 //牌只有1到9,手里拿着已经排好序的牌a,对方出牌b,用程序判断手中牌是否能够压过对方出牌。 //[1]一张 如4 则5...9可压过 //[2]两张 如44 则55,66,77,...,99可压过 //[3]三张 如444 规则如[2] //[4]四张 如4444 规则如[2] //[5]五张 牌型只有12345 23456 345
2015-07-08 20:58:57
2515
原创 判断输入的文本是英文还是德文
//输入包括多个行数,首先给出整数N(1#includeusing namespace std;void main(){ int n; cin>>n; if(n10000) return ; char str[100]; int num_s=0; int num_t=0; gets(str); while(n) { in
2015-07-08 20:56:18
1620
原创 if语句中括号的匹配
编程的时候,if条件里面的“(”、“)”括号经常出现不匹配的情况导致编译不过,请编写程序检测输入一行if语句中的圆括号是否匹配正确。同时输出语句中出现的左括号和右括号数量,如if((a==1)&&(b==1))是正确的,而if((a==1))&&(b==1))是错误的。注意if语句的最外面至少有一对括号。输入:if((a==1)&&(b==1))输出:RIGTH 3 3输入:i
2015-07-08 20:55:29
2032
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人