自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 排序算法之归并排序

归并算法归并算法的核心思想是分治思想。分治,分之治之。对一个无须待排序列,分为有序的子序列,再将这些有序的子序列按合并为一个有序的序列。归并排序流程:申请一段和待排序列大小相同的空间,用来存放合并出来的有序序列申请两个指针,分别指向已经有序的子序列的起始位置比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置重复第三部操作直至有子序列中的值已经全部添加到合...

2019-07-31 02:04:59 187

原创 排序算法值快速排序

快速排序算法:对于一个待排序列,确认出一个基准值key,将将序列分为小于基准值和大于等于基准值的两个序列,然后再将这两个序列再进行之前的操作分成新的两列,不断往下循环操作使数组分到的数组越来越小,如果分到的新序列里的元素为1或者为0,那么这个序列就是有序的了。key值可以定为待排序列的第一个元素或者最后一个元素,对待排序列的分组操作有三种实现思想。1.按基准值互划分左右区间:huver法...

2019-07-30 23:33:48 232

原创 排序算法之选择排序

选择排序:每一趟在n-i+1个有数据中选取最大(小)的数据,作为有序数组的第i个元素。直接选择排序:在元素集合array[i]~array[j]中选择关键码最小的元素若他不是这组元素中的第一个元素,就将它与这组元素中的第一个元素交换在剩余的array[i+1]~array[n-1]集合中,重复以上步骤,直到结合只剩下一个元素,排序完成代码实现:void SelectSort(int...

2019-07-27 22:54:42 164

原创 排序算法之插入排序

插入排序有两种方法:直接插入排序、希尔排序1.直接插入排序 (升序)把待排序的记录按其关键码值的大小逐个插入到一个已经拍好序的有序序列中,直到所有的记录都插入完成为止,得到一个新的有序序列。当插入第i个元素的时,前面的 i-1个元素都已经排好序了(arr[0],arr[1],arr[2],……arr[i-1],),此时用arr[i]和arr[i-1],arr[i-2]……的排序进行比较,找到...

2019-07-26 14:59:47 189

原创 模板

1.泛型编程泛型编程:编写与类型不管的同样代码,是代码复用的一种手段,模板是泛型编程的基础。不是使用泛型编程,使用函数重载可以实现实现一个通用的交换函数:void Swap(int& left, int& right) {int temp = left;left = right;right = temp; }void Swap(double& left, do...

2019-07-25 09:58:27 516

原创 异常

1.C语言传统放入处理错误的方式传统的错误处理机制: 1. 终止程序,如assert,发生内存错误,除0错误时就会终止程序。 2. 返回错误码,需要程序员自己查找对应的错误 3. C标准库setjmp 和longjmo组合 2.C++异常概念异常是一种处理错误的方式,当一个函数发现自己无法处理错误时可以抛出异常,让函数的直接或者间接的调用者处理这个错误。- throw:当问题出现...

2019-07-23 23:42:24 183

原创 常见的计算机签名方法

数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。 是一种类似写在纸上的普通的物理签名 ,比如合同签名。数字签名有两种功效:能确定信息确实是发送方签名并发送出来的,因为别人假冒不了发送方的签名。数字签名能确定发送信息的完整性。因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将会发生改变。不...

2019-07-21 22:47:30 1522

原创 HTML学习随笔

最近要做项目需要学点前端相关的知识,于是呢我又要开始我的前端学习了—(手动滑稽-)废话不多少开始我的前端学习吧!以下总结来自w3Shcool(w3Shcool)1.HTML简介HTML是用来描述网页的一种语言:HTML指的是超文本标记语言(Hyper Text Markup Language);HTML不是一种编程语言,而是一种标记语言(markup language);...

2019-07-19 15:44:15 205

原创 高级IO

在IO过程中分为两个阶段:等待拷贝内核将数据注备好之前,系统一直处于等待状态,等待完毕可以拷贝的时候称为就绪状态。五种IO模型:为了应付各种情况下提升效率,五种模型在等待阶段上存在差异。1.阻塞IO在内核将数据准备好之前,系统会一直等待,所有的套接字,默认都是阻塞等待。阻塞等待是最常见的IO模型。2.非阻塞等待IO如果内核为将数据准备好,系统调用仍然会直接返回,并且...

2019-07-18 10:21:14 200

原创 应用层自定制协议

应用层协议我们在解决一个实际问题,满足日常需求的网络程序,都是在应用层。协议就是一种“约定”,socket api 的接口,在读写数据的时候都是按”字符串“的方式来发送接受的,但是如果我们要传输一些”结构化的数据结构“就要自定制协议了;网络计算器例如,现在实现一个服务器版本的加法器,我们需要把客户端要计算的两个加数发送过去,然后服务器进行计算,最后再把计算结构返回到客户端;约定方案:...

2019-07-15 16:28:12 436

原创 TCP核心设计理念

TCP的核心设计理念:保证可靠性传输。尽可能的提高传送效率。提高效率的前提是保证可靠性。保证可靠性就必须能及时的发现自己发送的数据是发送成功了还是失败了。1. 确认应答在确认应答机制中,TCP将每一个字节的数据都进行了编码(序号),每一个ACK都带有对应的确认序列号(这里的序号不是从1开始的,是通过建立链接的时候协商出来的从哪里开始), 意思是告诉发送者, 我已经收到了哪些数据; ...

2019-07-14 12:36:37 604

原创 TCP三次握手四次挥手

三次握手(建立连接)三次握手其实就和我们日常打电话的时候信号不好的时候两个人通过相互 交流确认对方和你之间的连接是稳定的,举个例子:A:喂,你能听到我的声音吗?B:我能听到你说,你能听到我说话吗?A:可以听到。然后就可以正常的聊天了。对应的客户端和服务器之间的通信连接如图:TCP,名为传输控制协议,是一种可靠的传输层协议,IP协议号为6。客户端和服务器之间发送的SYN,ACK分别...

2019-07-12 17:06:48 219

原创 C++的类型转换

1.c语言中的类型转换隐式类型转换:int i=1;double d=i;显示类型转换int *p=&i;int address=(int)p;缺陷:转换的可视性比较差,所有的转换形式都是一种相同的书写,难以跟踪错误的转换。2.C++强制类型转换标准C++为了加强类型转换的可视性,引入了四种命名的强制类型转换符:static_cast,reinterpret_cas...

2019-05-21 17:13:58 247

原创 c++关键字

//#include//using namespace std;// //命名空间//namespace N1 //N1为命名空间的名称//{// //命名空间中的内容既可以定义变量,也可以定义函数// int a=10;// int Add(int left, int right){// return left + right;// }//}////命名空间的嵌套//...

2019-05-07 18:20:07 196

原创 多态

1.多态的概念:多态就是多种形态。具体点也就是完成每个行为,不同的对象去完成就会产生不同的状态。或者执行同一种行为产生不同的结果。多态看实际执行的对象,调用对应的代码,继承看类型。2.多态的前提:继承1)调用函数的类型必须是指针类型或引用2)被调用函数必须为虚函数,并且被重写(函数名,参数,返回值全部相同)3)函数重写:函数分别存在于子类和父类,函数名参数,返回值都相同(可以是协变)。...

2019-05-07 17:34:28 150

原创 继承

1.继承的概念及定义1.1继承的概念定义:继承机制是面对对象程序设计使代码可以复用的重要手段,他允许程序员保持原有类特星的基础上进行扩展,增加功能,这样产生新的类,称为派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程,以前我们接触的复用都是函数的调用,继承是类设计层次的复用。class Person{public: void Print() {...

2019-04-24 11:14:04 162

原创 linux学习----1

ifconfig:查看主机ip在终端下敲 “ifconfig”指令可以查看linux机器的ip地址使用Xshell登陆主机在Xshell终端上输入ssh [ip]如果网络通常,将会提示输入用户密码,输入正确即可登陆Xshell下的复制粘贴不同于我们平常使用windows系统的复制粘贴(Ctrl+c/Ctrl+v)Xshell上:复制:Ctrl+insret(个别电脑的inser...

2019-04-22 15:38:01 270

原创 快速排序

快速排序的大致步骤是:1.确定基准值(把区间的最右侧作为基准值)2.遍历整个区间,使比基准值小的数在基准值左边,比基准值大的在基准值右边3.分治算法依次解决左右两个小的无序区间4.直到小区间size0小区间没有数,size1小区间只有一个数,有序要排序的区间使array[left,right]void QuickSort(int array[],int left,int right)...

2019-03-19 17:09:52 135

原创 一二级指针,指针数组,数组指针总结

指针指针就是变量,用来存放地址的变量。#include<stdio.h>int main (){int a=10;//现在内存中开辟一块空间int *p=&a;//这里我们对变量a,取出它的地址,可以使用&操作符. //将a的地址存放在p变量中,p就是一个指针变量。 return 0;}指针的大小指针在...

2018-11-22 15:35:13 421

原创 C语言基础训练--1

给定两个整形变量的值,将两个值的内容进行交换。方法一:创建临时变量#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){int num1 = 0;int num2 = 0;int c = 0;scanf("%d%d", &num1, &num2);//开始交换printf(...

2018-10-04 00:25:26 210

空空如也

空空如也

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

TA关注的人

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