- 博客(55)
- 收藏
- 关注
原创 关于枚举类型的一些总结
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-11-13 14:41:35
593
转载 Servlet 工作原理解析
Servlet 工作原理解析 Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求。本文将带你认识 Java Web 技术是如何基于 Servlet 工作,你将知道:以 Tomcat 为例了解 Servlet 容器是如何工
2017-03-08 16:39:44
399
原创 对servlet的简单了解
1.servlet的简介 Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。 使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。Servlet 可以使用 javax.servlet 和 jav
2017-03-08 16:24:56
398
原创 JVM中一些参数
JVM中的一些参数设置: 堆: -Xms:设置堆的初始化值,即最小值 -Xmx:设置堆的最大值 -Xmn:设置堆内存年轻代。整个堆内存大小 = 新生代大小 + 老生代大小 + 持久代大小。持久代一般固定大小为64m,所以增大新生代后,将会减小老生代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。 -XX:PermSize:设置堆内存持久代。 -XX:MaxNewSi
2017-03-08 14:39:16
394
原创 内存溢出(OutOfMemoryError)
内存溢出: 内存溢出(out of memory)就是内存不够,当所需要的内存超出分配的内存时,就会导致内存溢出。 比如下面的程序: List list=new ArrayList(); while(true) { list.add("你好"); } 出现异常: 内存溢出在系统开发和测试阶段并不容易被发现,当系统正式上线一般时间后,操作的并发量上
2017-03-07 17:33:07
1069
原创 浅谈“==”和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
300
转载 静态链接库LIB和动态链接库DLL的区别
静态链接库LIB和动态链接库DLL的区别 一、 静态链接库与动态链接库区别 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接
2015-09-30 14:33:33
359
原创 循环有序数组的查找
//有一个循环有序数组A,如何从这样的数组中寻找一个特定的元素呢?利用折半查找的思想 #include using 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
454
原创 折半查找
//折半查找又称为二分查找,仅适用于事先已经排好序的顺序表。其查找的基本思想是:首先将给定值key与表中中间位置的关键字进行比较,若 //相等,则查找成功,返回该元素的存储位置;若不等,则所需查找的元素只能在中间数据以外的前半部分或后半部分中。然后在缩小的范围内 //继续进行同样的查找,如此重复直到找到为止。算法如下: #include using namespace std; int Binar
2015-07-16 21:44:25
431
原创 原路归并排序
//原地归并排序不需要辅助数组即可归并。关键在于merge这个函数。 #include using 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
748
原创 将数组b合并到数组a中
//给定两个有序数组a和b,已知数组a末尾还有足够的空间容纳b,写一个函数将数组b合并到数组a中。 //n:数组a中的元素个数 //m:数组b中的元素个数 #include using 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
1223
原创 合并两个排好序的链表
//合并两个有序的链表,使用递归和非递归的思想 #include using 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
506
原创 二路归并排序及数组中逆序对的计算
//二路归并排序,并计算逆序对的个数.二路归并排序算法的性能分析:空间复杂度为O(n),时间复杂度为O(nlog2n),具有稳定性 #include using namespace std; int count=0;//计算数组中逆序对的个数 //设两段有序表data[low...mid]、data[mid+1...high]存放在同一顺序表中相邻的位置上,先将他们复制到辅助数组b中。每次从对应
2015-07-10 10:28:07
710
原创 一个数组中存储有且仅有大写和小写字母,编写一个函数对数组内的字母重新排列,让小写字母在所有大写字母之前
//一个数组中存储有且仅有大写和小写字母,编写一个函数对数组内的字母重新排列,让小写字母在所有大写字母之前 #include using 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
1230
原创 冒泡排序
冒泡排序的思想是:假设待排序表长为n,从前往后(或从后往前)两两比较相邻元素的值。其空间复杂度为O(1),时间复杂度为O(n^2),具有稳定性,每一趟排序都会将一个元素放到其最终的位置上 #include using namespace std; void BubbleSort(int *data,int len) { if(data==NULL||len<=0) return;
2015-07-09 22:48:22
329
原创 快速排序
快速排序的思想史基于分治的,其是递归的,需要 借助一个递归栈来保存每一层递归调用的必要信息,所以其空间复杂度为O(log2n),时间复杂度为O(nlog2n),快速排序是所有内部排序算法中平均性能最优的排序算法 #include #include using namespace std; int RandomInRange(int start,int end) { srand(time
2015-07-09 22:43:51
384
原创 希尔排序
希尔排序的而思想是:先将待排序表分割成若干形如L[i,i+d,i+2d,...i+kd]的特殊子表,分别进行插入排序,当整个表中元素基本有序时,再对全体记录进行一次直接插入排序。 //d:增量 其空间复杂度为O(1),时间复杂度为O(n^1.3) #include using namespace std; void swap(int *a,int *b) { int c=*a;
2015-07-09 22:32:30
260
原创 选择排序
选择排序的思想是:每一趟在后面n-i+1个待排元素中选取关键字最小的元素,作为有序子序列的第i个元素。每排一次就可以确定一个元素的位置,其空间复杂度为O(1),时间复杂度为O(n^2),是一个不稳定的排序算法。 #include using namespace std; void SelectSort(int *data,int len) { if(data==NULL||len<=0)
2015-07-09 22:31:19
276
原创 插入排序
插入排序是一直最直接的排序方法,其基本思想在于每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,知道全部记录查完为止。其时间复杂度为 O(n^2),空间复杂度为O(1).具有稳定性 #include using namespace std; void InsertSort(int *data,int len) { if(data==NULL||len<=0)
2015-07-09 22:25:14
333
原创 堆排序
#include using 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
308
原创 用堆排序的思想求最小的k个数,处理海量数据
//最小的k个数 //输入n个整数,输出其中最小的k个数 //解答:虽然利用快排的思想很好的解决了问题,但是也有限制,首先我们需要一次性读入所以的数据,其次,需要修改输入的数组 //利用堆排序来解决此问题,此种方法适合处理海量数据 //首先我们先读入k个元素创建一个大小为k的大根堆,然后我们依次读入剩下的数据,如果当前数据比大根堆的堆顶小,则用这个数代替当前 //堆顶,并调整堆使其
2015-07-09 22:11:50
897
1
原创 判断IP地址的合法性
//现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数 //(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。 //现在需要你用程序来判断IP是否合法。 #include using namespace std; bo
2015-07-09 11:37:59
1391
原创 等差数列
//等差数列 //功能:等差数列 2,5,8,11,14。。。。 //输入:正整数N >0 //输出:求等差数列前N项和 //返回:转换成功返回 0 ,非法输入与异常返回-1 #include using namespace std; bool getResult(int n) { if(n return -2; int a=2; int b=a; f
2015-07-09 11:36:26
499
原创 输入整型数组和排序标识,对其元素按照升序或降序进行排序
//输入整型数组和排序标识,对其元素按照升序或降序进行排序 #include #include using 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
869
原创 如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。
//如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。 //实现以下接口: //输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用) //按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出 //清空目前的统计结果,重新统计 //调用者会保证: //输入的字符串以‘\0’结尾。
2015-07-09 11:32:48
2653
原创 从输入任意个整型数,统计其中的负数个数并求所有非负数的平均值
//从输入任意个整型数,统计其中的负数个数并求所有非负数的平均值 #include #include #include using 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
5916
原创 字符串的翻转
//将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 如:输入“I am a student”,输出“tneduts a ma I”。 #include using namespace std; void reverse(char *pBegin,char* pEnd) { if(pBegin==NULL||pEnd==NULL) return;
2015-07-09 11:30:58
385
原创 找出给定字符在字符串中出现的次数
//写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写 #include using 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
1228
原创 字符串的分割
//连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; //长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。 #include using namespace std; void getResult(char *str) { if(str==NULL) return; while(1) { if(strlen(str) {
2015-07-09 11:27:14
305
原创 将一个十六进制的字符串转化为一个十进制的字符串
//写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串 #include using 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
432
原创 求一个整数四舍五入后的结果,该整数可以是正数负数
//写出一个程序,接受一个浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。 #include using 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
674
原创 数字的颠倒
#include using 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
495
原创 编写程序时关于字符串时的一些主要函数
1.string 其支持长度可变的字符串,是一个标准的库,在使用时需要加#include头文件,可用getline函数读取整行文本,亦可用cin读取一个以空白字符分割的字符串 (1)getline函数:接受两个参数,一个输入流对象和一个string对象;它从输入流的下一行读取,并保存读取的内容到string中,但不包括换行符;但是getline函数并不忽略行开头的换行符,所以在使用此函数时,如
2015-07-08 21:09:14
498
原创 图片整理
//Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。 //请大家给Lily帮忙,通过C语言解决。 #include #include #include using namespace std; void getResult(char* s) { int len=strlen(s); if(len10
2015-07-08 21:06:33
325
原创 输入一个10进制数字,请计算该数字对应二进制中0的个数,注意左数第一个1之前的所有0都不需要计算。不需要考虑负数的情况。
//输入一个10进制数字,请计算该数字对应二进制中0的个数,注意左数第一个1之前的所有0都不需要计算。不需要考虑负数的情况。 #include using 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
1024
原创 求整数的Root:给定正整数,求每位数字之和;如果和不是一位数,则重复
//求整数的Root:给定正整数,求每位数字之和;如果和不是一位数,则重复 //用递归求解数字基 #include using 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
420
原创 判断我国公民的身份证是否合法
//我国公民的身份证号码特点如下: //1、 长度为18位; //2、 第1~17位只能为数字; //3、 第18位可以是数字或者小写英文字母x。 //4、 身份证号码的第7~14位表示持有人生日的年、月、日信息。 //例如:511002198808080111或51100219880808011x。 //请实现身份证号码合法性判断的函数。除满
2015-07-08 21:02:22
881
原创 出牌,用程序判断手中的牌是否能够压过对方出牌
//规则:出牌牌型有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
2605
原创 判断输入的文本是英文还是德文
//输入包括多个行数,首先给出整数N(1 #include using 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
1727
原创 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
2110
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅