自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风雪傲月的博客

点点滴滴的积累

  • 博客(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关注的人

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