自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 递归与分治总结

一 递归的概念    递归算法是指直接或间接调用自身的算法,递归函数是用函数自身给出定义的函数。递归的优势在于能够使函数的定义和算法的描述简捷且易于理解,使用递归技术可以解决许多复杂问题。递归可以分为两类:基于归纳法的递归和基于分治法的递归。二 归纳法    求解规模为n的问题P(n),设a1是问题P(1)的解,且对所有的k,1<k<n,若ak是问题P(k)的解,则P(ak)是问题P(k+1)的解。其中,P(ak)是对ak的某种运算或处理。    其求解过程为:为求问题 P(n)

2022-04-24 23:00:01 3803

原创 贪心算法总结

一 基本思想    贪心算法总是作出在当前看来最好的选择。即贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择,不一定达到全局最优。    当一个问题动具有最优子结构性质时,可用动态规划算法求解,但有时贪心算法会更简单有效。如下图所示例题,贪心所得的局部最优就是全局最优。    贪心算法解题简单、有效,利用了问题本身的特性。但它有时并不能从局部的最优得到整体的最优。如下图所示例题,贪心所得的局部最优并非全局最优。    虽然贪心算法不是对所有问题都能从局部得到整体的最优解,但它

2022-04-12 00:38:05 4798

原创 常用排序算法

    C++常用的十大(内部)排序算法,内部排序在这里指的是只用到了电脑内存而不使用外存的排序方式。一 排序算法分类    常用的排序算法根据排序过程中是否需要比较两个元素的大小可以分为比较排序和非比较排序。    比较排序算法实现数据排序的方式主要分为三种:交换、插入和选择,当然还包括一种特殊的不通过这三种方式实现的比较排序算法:归并排序。常见的非比较排序算法主要有三种:计数排序、桶排序和基数排序,它们用统计的方法规避了比较,也称为整数排序。二 排序算法性能衡量标准    排序算法的衡量标准

2022-03-30 22:56:40 447

原创 动态规划(Dynamic Programming)

1 动态规划的基本思想    与分治法类似,动态规划的基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。    与分治法不同之处在于:经分解得到的子问题往往不是相互独立,大量子问题会重复出现,不同子问题的数目常常只有多项式量级。用分治法求解,将有许多子问题被重复计算。    动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题)

2022-03-19 21:00:00 428

原创 深度优先搜索(DFS)与广度优先搜索(BFS)

深度优先搜索和广度优先搜索都是对图进行搜索的算法,两者都是从起点开始顺着边搜索,直到找到结果为止,区别在于两者的搜索方式略有差别。深度优先搜索是搜索算法的一种,它从某一个状态开始,不断地转移状态直到无法转移,然后回退到前一步的状态,继续转移到其他状态,如此不断重复,直到找到最终的解。广度优先搜索是一层层进行遍历的,因此需要用先入先出的队列进行遍历。由于是按层次进行遍历,广度优先搜索时按照“广”的方向进行遍历,常用于处理最短路径问题。

2022-03-16 13:59:36 9586 3

原创 Netty简介及简单应用样例

一、什么是NettyNetty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。二、Netty的优点高并发、传输快、封装好三、Netty简单应用样例用Netty实现了一个支持TCP、UDP通信的简单模块,源码已上传码云平台,欢迎大家一起学习交流。

2022-03-06 17:35:56 947

原创 二分查找算法总结

1 二分查找简介  二分查找也叫折半查找,是一种常见的查找方法,它将原本是线性时间提升到了对数时间范围,大大缩短了搜索时间。  二分查找必须具备两个条件,一是数列必须使用顺序存储结构(例如数组),二是数列必须有序。2 二分查找的原理及实现  以升序数列为例,比较一个元素与数列中的中间位置的元素的大小,如果比中间位置的元素大,则继续在后半部分的数列中进行二分查找;如果比中间位置的元素小,则在数列的前半部分进行比较;如果相等,则找到了元素的位置。  每次比较的数列长度都会是之前数列的一半,直到找到相等

2022-02-18 23:35:55 7521

原创 Windows下的IOCP模型(二):IOCP使用示例

一 我对IOCP的使用    IOCP以异步处理网络I/O事件、优秀的线程调度等机制,成为Windows环境下性能最优秀的网络通信模型之一。但结合不同的应用场景,IOCP也需要合理的使用方式才能发挥其性能优势。    前段时间需要开发一个Windows环境下的网络通信综合集成系统,作者通过IOCP模型,设计实现了一个用于网络通信的底层模块,这个模块同时支持tcp、udp、广播、udp组播等多种通信方式,每种通信方式对应不同的事件处理机制,能够支持高性能的网络通信,并为上层模块提供服务。二 支持多通信方

2022-01-10 22:34:35 2078

原创 Windows下的IOCP模型(一):介绍与简单使用

一、IOCP简介 IOCP(I/O Completion Port,I/O完成端口)是Windows操作系统中伸缩性最好的一种I/O模型。    I/O完成端口是应用程序使用线程池处理异步I/O请求的一种机制。处理多个并发异步I/O请求时,使用I/O完成端口比在I/O请求时创建线程更快更高效。二、IOCP的优势    I/O完成端口可以充分利用Windows内核来进行I/O调度,相较于传统的Winsock模型,IOCP在机制上有明显的优势。模型机制特性select模型通过

2021-10-16 22:34:47 9271 2

空空如也

空空如也

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

TA关注的人

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