自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

转载 <排序算法> 希尔排序ShellSort

1.核心思想:希尔排序是插入排序的一种,是直接插入排序的一种改进版本,他们同属于插入排序类。这是一个不稳定的排序算法。采取跳跃分割的策略:将相距某个“增量”的记录组成一个子序列,这样才能保证在子序列内分别进行直接插入排序后得到的结果是基本有序而不是局部有序。2.代码实现: 1 #include<iostream> 2 using namespace std; ...

2019-08-06 13:17:00 142

转载 <查找算法> 二分查找BinarySearch

1 #include<iostream> 2 using namespace std; 3 4 int BinarySearch(int arr[],int begin,int end,int num) 5 { 6 if(arr == NULL || begin < 0 || end < 0 || begin >= end...

2019-07-21 13:37:00 166

转载 <算法编程> 两个栈实现一个队列

1 #include<iostream> 2 using namespace std; 3 4 typedef struct Node 5 { 6 int num; 7 Node* pNext; 8 }Stack,Queue; 9 10 //栈的入栈相当于 链表的头插11 Stack* stack_push(St...

2019-07-21 13:33:00 131

转载 <算法编程> 把字符串中的空格替换成%20

1 #include<iostream> 2 using namespace std; 3 4 void ChangeSpace(char* buf,int len) 5 { 6 if(buf == NULL || len <= 0) return ; 7 8 int count = 0; 9 f...

2019-07-20 18:58:00 133

转载 <算法编程> 奇偶链表相连

1 #include<iostream> 2 using namespace std; 3 4 struct Node 5 { 6 int n; 7 Node* pNext; 8 }; 9 10 Node* AddNode(Node** pHead,Node* pNode) 11 { ...

2019-07-20 18:56:00 106

转载 <算法编程> 从尾到头打印链表

1 #include<iostream> 2 using namespace std; 3 4 struct Node 5 { 6 int n; 7 Node* pNext; 8 }; 9 10 Node* AddNode(Node** pHead,Node* pNode) 11 { 12...

2019-07-20 18:53:00 88

转载 <算法编程> 给定二维数组查找一个数是否存在在这个数组中

1 #include<iostream> 2 using namespace std; 3 4 bool FindNum(int arr[][5],int rows,int cols,int num) 5 { 6 if(arr == NULL || rows <= 0 || cols <= 0) return false; ...

2019-07-20 18:53:00 354

转载 <排序算法> 计数排序CountSort

代码实现: 1 #include<iostream> 2 using namespace std; 3 4 void PrintArr(int arr[],int len); 5 void CountSort(int arr[],int len) 6 { 7 if(arr == NULL || len <= 0) retu...

2019-07-20 18:51:00 143

转载 <排序算法> 直接插入排序InsertSort

1.核心思想:将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数+1的有序表。2.代码实现: 1 #include<iostream> 2 using namespace std; 3 4 void PrintArr(int arr[],int len); 5 void InsertSort(int arr[],int len) 6 ...

2019-07-20 18:49:00 203

转载 <排序算法> 快速排序QuickSort

1.基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。2.代码实现: 1 #include<iostream> 2 using namespace std; 3 4 void PrintArr(i...

2019-07-20 18:48:00 90

转载 <排序算法> 简单选择排序SelectSort

1.核心思想:每一趟在n-i+1中选取关键字最小的记录作为有序序列的第i个记录。简单排序最大的特点就是交换移动次数相当少,这样就节约了时间。通过分析时间复杂度也就是说如果从小到大进行排序,找最大的往后放或者找最小的往前放。简单选择排序没有优化,对数组没有要求。有序或者无序都没有差别。2.代码实现: 1 #include<iostream> 2 using name...

2019-07-20 18:47:00 286

转载 <排序算法> 冒泡排序BubbleSort

1.核心思想:根据要求,对数组进行相邻的两两元素之间的比较,如果反序就进行交换,直到数组没有反序的相邻的元素为止。2.实现:①非标准冒泡排序:让每一个关键字arr[i],都和它后面的每一个关键字做比较(即从arr[i+1]开始比较,依次向后),如果大则交换,这样第一位置的关键字在一次循环之后一定会变成这个数组中的最小值。但是,这种排序方法不算是标准的冒泡排序,因为它不符合两两比较相邻记录...

2019-07-20 18:45:00 197

转载 <数据结构> 树Tree(简单理论)

一.与树相关的基本概念1.树是可以为空树的 即根为空2.树的层数 即为当前树的高度3.结点的高度 从下往上看 看它下面有几个人结点的深度 从上往下看 看它上面有几个人4.度 即当前结点有几个孩子 整棵树的度就是最大的某一结点的度5.中间结点 即为有孩子的结点叶子结点 即为没有孩子的结点(一直纠结在一个点上 到底是节点 还是结点 查了一下 对于完全二叉树来说...

2018-10-21 13:49:00 266

转载 <数据结构> 队列Queue

一.队列Queue:先进先出 FIFO1.队列有两个指针 一个是队首 一个是队尾 可以理解成链表的头删除和尾添加2.存储方式:①顺序存储②链式存储3.顺序存储的应用:循环队列(以下来自本人看过百度文库后的个人理解)循环队列:开辟一个数组空间 把这个数组空间想象成一个首尾相连的圆环空间 存储在这个循环空间的队列就称为循环队列循环队列存在一个问题就是假溢出 什么...

2018-10-17 15:07:00 146

转载 <数据结构> 栈Stack

一.栈stack:先进后出 FILO1.栈的主要功能是进行数据的存储和计算 栈是一种容器 是具有特殊限制的链表或数组2.栈的存储方式:①顺序存储:数组空间固定 所以需要预先知道所需要开辟的空间有多大 数组难以进行扩容 所以导致可用空间是有限的②链式存储:链表栈可以理解为链表的头插头删 这种存储方式便于查找 又快又方便3.栈的操作端为栈顶pTop 栈是没有栈底的...

2018-09-20 17:30:00 144

转载 <网络> TCP:C/S模式设计 以及相关知识

一.服务器端Server1.基本思路:①加载库:WSAStartup();②创建套接字:socket();③选址绑定:bind():④监听:listen();⑤接受客户端连接:accept();⑥收发数据:recv - send⑦关闭套接字:closesocket();(两个)⑧卸载库:WSACleanup();2.代码实现: 1 #inc...

2018-08-09 14:41:00 160

转载 <网络> TCP/IP协议栈 以及IP的相关知识点

一.TCP/IP协议栈:符合先进后出1.图解:2.注意:①帧头长度14 帧尾长度4②以太网数据报范围:46~1500(小于46的时候会自动填充)帧长度:64~1548③将网卡设置为“混杂模式”的时候 可以收到经过这个网卡的任意数据包二.IP1.分类:①公有IP②私有IP2.私有IP分类:①A类:“0”IP范围:1.0.0.0~127.2...

2018-08-09 13:27:00 229

转载 <网络> UDP:C/S模式设计 及UDP特点

一.服务器端Server1.基本思路:①加载库:选择一个种类 WSAStartup();②创建套接字:与外界通信的接口 socket();③绑定:自己的地址信息 bind();④收发数据⑤关闭套接字:closesocket();⑥卸载库:WSACleanup();2.代码实现: 1 #include<iostream> 2 #inc...

2018-08-06 13:41:00 137

转载 <网络> 基础(库 网络分层模型)

一.库:分为静态库和动态库1.静态库:在链接阶段 将代码完整拷贝到exe中①使用方法:#pragma comment(lib,"xx.lib")②注意:pragma在预处理时保留 链接阶段生成静态库只需导.h和.lib2.动态库:在链接阶段 将引入库拷贝到exe中②使用方法同静态库 但这里的lib叫做引入库 而不是静态库②加载方式分为两类:隐式加载和动态加载...

2018-08-05 15:37:00 78

转载 <C++> 类(4):静态成员变量和函数 浅拷贝和深拷贝(拷贝构造 operator=)

一.静态成员变量和函数1.静态成员变量:①如果在类中放了静态static成员变量 一定要在源文件即.cpp中 类外 给这个变量进行初始化初始化时要有:类型 类名 作用域1 int CPerson::a = 100;注意:一定要在定义CPerson类的后面初始化 不然会说不认识CPerson②static变量在编译期的时候就存在了不用定义对象调用 通过类...

2018-06-25 17:12:00 773

转载 <C++> 类(3):初始化列表 常函数和常量对象 虚函数与多态(包括纯虚函数)...

一.初始化列表(初始化列表中必须有的两个内容)1.类中const的成员变量:①特点:不能修改 必须初始化 在构造函数后面加冒号 格式为:“:变量名(值)”也就是说 常量必须在初始化列表中初始化②执行顺序:构造函数先执行初始化列表 然后执行函数中的内容 1 #include<iostream> 2 using namespace std; 3 ...

2018-06-18 14:44:00 237

转载 <C++> 类(2):对象的种类 类之间的关系 重载操作符operator

一.对象的种类1.全局对象:①生命周期:程序结束②执行顺序:return 0 → } → 析构2.栈区局部对象:①生命周期:作用域结束②执行顺序:return 0 → 析构 → }3.堆区的指针对象:①生命周期:遇到delete结束注:new出来的对象没有delete就没有析构函数 哪怕是作用域结束了也没有4.临时对象:①生命周期:仅限当前这一...

2018-06-10 14:32:00 348

转载 <C++> 类(1):定义 访问修饰符 相关函数(接口 构造 析构) 链表类(简单应用)...

一.引入在C中 有数据 函数 算法 那么在C++中 把这些东西封装到一起 就有了类 即classC是面向过程 C++则是面向对象(但其实C++也不是纯面向对象的 是介于面向过程和面向对象之间的)类 是一种抽象的数据类型 这个类型定义的变量 就叫对象二.类1.定义:类是一组相同的具有相同属性和行为的对象的抽象对象是具体的 类则是抽象的①例如:定义一个类CPers...

2018-05-27 17:08:00 131

转载 <C++> 函数默认参数 函数重载 引用

一.函数默认参数1.缺省参数:就是在声明函数的某个参数的时候 给他一个默认值 1 #include<iostream> 2 using namespace std; 3 4 void Show(int a = 1,int b = 2,int c = 3) 5 { 6 cout << a << endl; 7...

2018-05-20 16:50:00 128

转载 <C++> 基础

一.标准1.输入:cin >> 变量名;2.输出:cout << 变量名;3.换行并清空缓冲区:endl4.头文件:#include<iostream>输入输出流头文件 C++中的头文件都不用加.h5.命名空间:using namespace std;打开命名空间 标准C++库中的所有组件都是一个被称为std的名字空间中声明...

2018-05-20 16:00:00 206

转载 <C> 头文件 文件

一.头文件1.头文件不仅仅只是系统中自带的 也可以自定义2.举例:1 #include "My.h"自定义的头文件中:可以放系统头文件 可以放typedef 可以放宏 可以放自定义声明的函数注:自定义头文件的时候要用 双引号" "系统的头文件都是用尖括号< > 但是引系统用双引号也可以用双引号的话 就是先在自定义的头文件中找 如果没找到的话...

2018-05-06 16:42:00 146

转载 <C> 枚举 联合体 递归

一.枚举1.枚举是一个类型 一个常量数组2.关键字:enum1 enum Week{MON,TUE,WED,THU,FRI,SAT,SUN};3.声明一个enum Week w 那么sizeof(w)的大小是4w可以等于以上七个里面中的任意一个 只能在范围之内赋值默认情况下 不赋值第一个从0开始 MON=0 TUE=1 以此类推但例如对THU进行赋值 ...

2018-04-30 15:19:00 68

转载 <C> 链表 双向链表 栈 队列

一.链表1.线性存储结构:在一个结构体中 再放一个本类型(结构体类型)的指针这个指针不指向自己 指向的是要找的下一个结构体的地址 以此类推 没有数量限制2.声明及链表遍历: 1 #include<stdio.h> 2 3 typedef struct AA 4 { 5 int bh; 6 char* name;...

2018-04-30 11:12:00 133

转载 <C> 结构体

一.结构体1.定义:不同/相同变量类型的集合2.初始化3.结构体指针以上三个方面 我们用一个例题来解释清楚: 1 #include<stdio.h> 2 3 typedef struct AA 4 { 5 int bh; 6 char* name; 7 char* tel; 8 }E; 9 ...

2018-04-21 17:32:00 67

转载 <C> getchar()函数 如何把getchar()到的字符串存起来的实际应用

一.getchar()1.返回值:返回读到的ASCⅡ码值2.使用方法: 1 #include<stdio.h> 2 3 int main() 4 { 5 char c; 6 while((c = getchar()) != '\n') 7 { 8 printf("%c",c); 9 ...

2018-04-14 19:22:00 880

转载 <C> 字符串简单习题

1.查找一个字符在另一个字符串中第一次出现的下标 1 #include<stdio.h> 2 #include<string.h> 3 4 int T1(const char* str,char c); 5 6 int main() 7 { 8 printf("%d\n",T1("abcd",'c')); 9 ...

2018-04-14 18:44:00 206

转载 <C> 字符串相关的函数

一.strlen1.头文件:#include<string.h>2.返回值:(无符号int)字符串长度3.作用:计算字符串的长度4.与sizeof的区分:sizeof是求大小的 这里用一道例题来说明 1 #include<stdio.h> 2 #include<string.h> 3 4 int main() ...

2018-04-07 13:20:00 104

转载 <C> 内存分区

一.栈区:1.局部变量的生活在栈区(不管函数还是主函数内)2.生命周期:①定义变量的时候开始(开辟内存空间)②所在作用域结束的时候消亡(被系统回收)注:存在回收不及时的问题二.堆区1.动态申请空间注:在不用的时候 需要手动释放 不会随着作用域的结束释放掉2.两个相关函数:①调用函数必须使用的头文件:#include<stdlib.h>...

2018-04-06 19:54:00 212

转载 <C> 最大值以及最大值下标 二分查找(折半查找)

一.最大值以及最大值下标 1 #include<stdio.h> 2 3 int FindMaxIndex(int arr[],int nLen,int *p); 4 5 int main() 6 { 7 int arr[10] = {1,5,7,3,4,6,8,9,2,0}; 8 int Max; 9 in...

2018-04-06 18:14:00 302

转载 <C> 函数 函数指针

一.函数相关知识点1.定义:对做事步骤的封装2.声明:void PrintArr();3.组成:返回值类型+函数名+(参数);注:声明函数的时候 参数可以不写名字 实现的时候必须写4.位置:主函数上面 头文件下面5.调用:函数名+(参数);注:调用位置在主函数中6.实现:这里就直接放一道例题:数组的输出 1 #include<stdio.h&...

2018-04-06 17:27:00 71

转载 <C> 冒泡排序及其非常非常非常简单的优化

话不多说 直接上代码 1 #include<stdio.h> 2 3 #define ARRLEN(a) sizeof(a)/sizeof(a[0]) 4 5 int main() 6 { 7 int arr[10] = {9,5,1,7,3,4,8,2,6,0}; 8 9 int i,j;10 int...

2018-04-01 16:33:00 83

转载 <C> typedef 宏 const 位运算

一.typedef1.作用:给已经有的数据类型起别名 并不是定义了新的数据类型2.位置:在主函数之前例如:typedef int AA; //AA就是int了解:typedef unsigned int UNIT; 这行命令在C的状态下 有这行代码才可以使用UNIT来定义一个变量但是如果加上头文件#include<windows.h> UNIT就可...

2018-04-01 16:27:00 78

转载 <C> 数组

一.数组1.定义:int arr[n]; //n为元素个数2.数组的三种初始化方法:①完全初始化:arr[10] = {0,1,2,3,4,5,6,7,8,9};②不完全初始化:arr[10] = {0,1,2,3};注:在不完全初始化中 至少赋1个的值 其余没有进行赋值的数为0③int arr[] = {0,1,2,3};3.数组的遍历:for循环输出arr...

2018-04-01 15:16:00 77

转载 <C> 指针

引入:二进制中的三位 对应 八进制中的一位二进制中的四位 对应 十六进制中的一位例:001 010 011(2)→123(8)→0x53(53)注:在位数不够的时候 前面补零去看一.对一个变量我们可以进行哪些操作1.写操作:a = 10;2.读操作:用printf输出一个数的值3.取地址操作:&a;①内存→一个格子一个字节 例如:int a;...

2018-04-01 13:19:00 154

转载 <C> 基础

一.数制分为二进制 八进制 十进制 十六进制二.C的第一个简单程序1 #include<stdio.h>2 int main()3 {4 printf("Hello World!");5 return 0;6 }1.C的基本类型①整型:有符号(signed):int 32位 -2147483648~21474...

2018-03-31 21:11:00 520

空空如也

空空如也

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

TA关注的人

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