自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

luanzheng_365的博客

计算机编程技术学习与讨论

  • 博客(54)
  • 收藏
  • 关注

原创 .NET Core6.0环境下使用Autofac框架对webAPI进行依赖注入改造

基于.NET Core6.0,对API接口使用AutoFac进行依赖注入改造,从而实现接口层与服务层的解耦。

2023-03-29 09:41:09 1318 1

原创 Effective C++读书笔记(十一)继承与面向对象设计部分(下)

读书笔记中涉及到的所有代码实例可通过https://github.com/LuanZheng/EffectiveCPlusPlus.git进行下载获得。Item36 绝不重新定义继承来的non-virtual函数non-virtual函数都是静态绑定的。这意思是说,由于pB被声明为一个point-to-B,通过pB调用的non-virtual函数永远是B所定义的版本,即使pB指向一个类型为...

2018-03-15 11:19:35 246

原创 Effective C++读书笔记(十)继承与面向对象设计部分(上)

读书笔记中涉及到的所有代码实例可通过https://github.com/LuanZheng/EffectiveCPlusPlus.git进行下载获得。Item32 确定你的public继承塑模出is-a关系以C++进行面向对象编程,最重要的一个原则是:public inheritance意味“is-a”的关系。适用于base class身上的任何一件事情也适用于derived class...

2018-03-14 15:51:30 222

原创 Effective C++读书笔记(九)实现部分(下)

读书笔记中涉及到的所有代码实例可通过https://github.com/LuanZheng/EffectiveCPlusPlus.git进行下载获得。Item29 为“异常安全”而努力是值得的“异常安全”有两个条件 1)不泄露任何资源。 2)不允许数据败坏。例如下列代码:void PrettyMenu::changeBackground(std::istream&...

2018-03-14 15:48:20 161

原创 Effective C++读书笔记(八)实现部分(上)

读书笔记中涉及到的所有代码实例可通过https://github.com/LuanZheng/EffectiveCPlusPlus.git进行下载获得。条款26 尽可能延后变量定义式的出现时间延后变量定义式的出现时间,直到确实需要它。万一在后续运行过程中,出现异常,该变量可能并没有实际使用,因此延后定义可以节省构造成本和析构成本。甚至应该尝试延后这份定义直到能够给它初值实参为止。如果这...

2018-03-14 15:45:59 152

原创 Effective C++读书笔记(七)设计与声明部分(下)

读书笔记中涉及到的所有代码实例可通过https://github.com/LuanZheng/EffectiveCPlusPlus.git进行下载获得。Item22 将成员变量声明为private如果public接口内的每样东西都是函数,客户就不需要在打算访问class成员时迷惑地试着记住是否该使用小括号。细微的划分访问控制破有必要,因为许多成员变量应该被隐藏起来。如果你通过函数访...

2018-03-14 15:42:42 156

原创 Effective C++读书笔记(六)设计与声明部分(上)

读书笔记中涉及到的所有代码实例可通过https://github.com/LuanZheng/EffectiveCPlusPlus.git进行下载获得。Item18: 让接口容易被正确使用,不易被误用理想上,如果客户企图使用某个接口而却没有获得他所预期的行为,这个代码不该通过编译;如果代码通过了编译,他的作为就该是客户所想要的。明智而审慎的导入新类型。 例:#ifndef _...

2018-03-14 15:39:44 124

原创 Effective C++读书笔记(五)资源管理部分

读书笔记中涉及到的所有代码实例可通过https://github.com/LuanZheng/EffectiveCPlusPlus.git进行下载获得。Item13: 以对象管理资源先看一下下面的例子:void f(){ Investment* pInv = createInvestment(); ... delete pInv;}如果…语句里面产生...

2018-03-14 15:35:59 117

原创 Effective C++读书笔记(四)构造,析构,赋值运算部分(下)

读书笔记中涉及到的所有代码实例可通过https://github.com/LuanZheng/EffectiveCPlusPlus.git进行下载获得。Item9 绝不在构造和析构函数中调用virtual函数Base class构造函数的执行更早于derived class构造函数,因此,base class构造期间virtual函数绝不会下降到derived class阶层。或者说,在b...

2018-03-14 09:55:10 139

原创 Effective C++读书笔记(三)构造,析构,赋值运算部分(上)

读书笔记中涉及到的所有代码实例可通过https://github.com/LuanZheng/EffectiveCPlusPlus.git进行下载获得。Item5 了解C++默默编写并调用哪些函数重点内容 默认构造函数 默认析构函数 拷贝构造函数 拷贝赋值操作符若自己声明了一个构造函数,则编译器不会自动生成默认构造函数。 对于内置类型,会以拷贝每一个bits来完成初始化,而对于非...

2018-03-14 09:46:54 134

原创 Effective C++读书笔记(二)让自己习惯C++部分

读书笔记中涉及到的所有代码实例可通过https://github.com/LuanZheng/EffectiveCPlusPlus.git进行下载获得。Item 1.视C++为一个语言联邦 当使用C++以下4种情况时,对应的高效准则可能不同。 1) C 2) Object C 3) template 4) STLItem 2. 尽量以const,enum,inline替换#def...

2018-03-01 17:41:51 186 1

原创 Effective C++读书笔记(一)导读部分

读书笔记中涉及到的所有代码实例可通过https://github.com/LuanZheng/EffectiveCPlusPlus.git进行下载获得。0 导读 将构造函数声明为explicit,可组织它们被用来执行隐式类型转换。常常更受欢迎,因为它们禁止编译器执行非预期的类型转换。#ifndef _A_H_#define _A_H_class A{public: ...

2018-03-01 17:34:16 153

原创 计算组合数的算法

概率论是统计分析的基础,而统计分析在很多领域比如人工智能,生物信息学中作为理论基础,具有广泛的应用场景。组合数在概率论中常用,本文就对组合数的数值计算给出一个C++求解的算法。通过实现该算法,对数值计算上的某些方法加深的认识。

2017-11-25 21:41:57 16761 1

原创 BWT算法在生物信息学中的应用(二)-算法实现

上一节中,介绍了BWT算法的基本原理,本节主要使用C++来完成BWT算法。主要思路基于上一节中的思想。

2017-11-19 17:49:02 1691

原创 BWT算法在生物信息学中的应用(一)-算法的基本原理

BWT算法可以将原文本转换成相似文本,并且可以用其他技术进行压缩。

2017-11-19 17:32:37 5140

原创 算法导论读后感-之树的旋转(维护红黑树的性质)

在进行树中元素的插入与删除操作之后,可能会违反红黑性质,为了维护这些性质,必须改变树中某些节点的颜色以及指针结构。 其中,指针结构的修改是通过旋转来完成的。

2017-11-12 15:33:16 163

原创 算法导论读后感-之红黑树的性质

红黑树

2017-11-12 14:48:08 235

原创 算法导论读后感-之同时查找最大数与最小数

高效同时查找最大数和最小数

2017-11-11 23:11:58 243

原创 算法导论读后感-选取数组中的第X小(大)的元素

高效选择算法之选择书祖宗第X小(大)的元素

2017-11-11 12:29:08 246

原创 算法导论读后感-之堆,堆排序,堆排序的应用

算法中(二叉)堆的概念:(二叉)堆是一个数组,它巧妙的利用的数组的下标来维护了堆中数据的关系。

2017-10-29 10:38:10 243

原创 基于KMP算法的C++字符串帮助类

利用C++实现的字符串基本查找替换算法类.基于KMP算法. 本文只给出最初版本,后续将进行持续优化,目的是提高算法效率,目标是达到或超过C++标准库中的方法的效率.

2017-07-08 11:20:17 247

原创 C++实现计数排序

计数排序首先利用数组计数器count[]对每个数字在数组data[]中出现的次数进行计数.然后,计数器将所有<=i的整数的个数添加并存储到count[i]中.通过这种办法,count[i]-1表明i在data[]中的主位置.时间复杂度: 4*max value 空间复杂度: O(n),需要额外计数器存储与额外最终排序空间存储,即不是在原有数组上进行排序. 算法稳定性: 稳定补充强化C++基础,c

2017-06-25 10:20:41 356

原创 C++实现基数排序

基数排序的思想是先将要排序的序列进行划分,分成几个桶.(比如说,整数可以按照0-9分成10个桶,单词可以按照a-z分成26个桶). 从元素的最低位开始,一轮循环下来,根据元素的最低位进行一轮的分桶排序.下一轮循环则考察元素的次低位,依次类推,直到完成.基数排序需要借助队列来做额外的辅助存储空间.利用队列的先进先出的性质,使用队列来做为容器,分成几个桶,就有几个队列.每个元素根据当前考察位进入相应的队

2017-05-15 10:52:29 678

原创 C++模板实现归并排序

归并排序的思想是将一个大的序列先进行二分法划分,直到划分到每个子序列只包含一个元素为止. 然后对序列进行依次合并,在合并的过程中实现排序.归并排序是一种典型的外部排序算法,需要额外的辅助空间来完成算法.算法分析: 1.稳定 2.时间复杂度: O(nlog(n)) 3.需要额外辅助空间来实现排序//Mergesort//1. Stable//2. Time complex O(nlog(n)

2017-04-25 12:38:40 496

原创 .net MVC框架下利用css+js实现遮罩效果

前一篇文章中http://blog.csdn.net/luanzheng_365/article/details/70455933,实现的loading效果的显示上进行优化,形成一个遮罩,将loading显示在遮罩上,并调整遮罩属性,使得遮罩与页面滚动可以适配.运行结果页面如下: 代码修改如下: 1. CSS,将loadingEffect的position设置为absolute, z-index

2017-04-23 16:53:13 792

原创 C++模板实现快速排序

快速排序是一种效率很高的排序算法,其基本思想是首先选取第一个位置做为哨兵,从最后位置开始依次向前搜索,搜索到第一个小于哨兵的元素,则进行位置交换,之后在从开始位置开始进行搜索,搜索到第一个大于哨兵的元素,则进行位置交换,如此往复,直到整个序列被遍历一遍,则完成一次快速排序.结果是,哨兵左边的元素都小于哨兵,哨兵右边的元素都大于哨兵.之后,使用分治法,对左右两个子序列再进行快速排序,最终达到整个序列的

2017-04-23 12:36:21 1423

原创 C++模板实现堆排序

堆的概念我在之前的文章中已经有说明,这里不再赘述.本小结的内容仅包括堆排序部分.算法特点: 1.不稳定. 2.时间复杂度 O(nlog(n)) 3.空间复杂度 O(nlog(n))在堆删除节点的同时,正好可以巧妙的将该数据放置到数组被删掉的位置,最后得到排序好的数组(堆的根节点被弹出后,总是将最后节点重新放置到跟节点,这样,最后节点位置正好空出).//Heapsort//1. Not Sta

2017-04-22 21:34:49 444

原创 .net MVC框架下利用CSS+js实现loading效果

继续上一节的话题,http://blog.csdn.net/luanzheng_365/article/details/70348382 动态刷新过程往往需要较多的时间,这期间需要做一个loading的效果,来增强用户体验。先看以下程序运行效果:可以看到在数据未呈现出来时,页面产生了loading效果,在数据获取到之后,数据展示的同时,loading消失。 在上一节代码的基础之上,增加loadin

2017-04-22 16:20:37 1886 1

原创 JQuery Ajax 结合.net MVC框架实现页面局部刷新

JQuery Ajax的异步刷新可实现html静态页面率先加载完毕,呈现给用户,对提升用户体验很有帮助.本文举一个小例子,在.net的MVC框架下面实现JQuery Ajax的异步刷新.

2017-04-22 10:04:42 4298

原创 C++模板实现希尔排序

希尔排序是一种高效的排序算法,原理是将大数组分成若干个小数组,对每个小数组进行排序.之后缩短步长,对原数组重新划分小组,继续对每个小组进行排序.直到步长变为1后,进行最后一次直接插入排序. 此算法高效的原因在于直接插入排序在对基本有序的序列进行排序是十分高效的.前期划分子数组进行排序,可以逐渐使得较大的元素排列在原序列的尾部,符合插入排序高效的前提条件.步长的经验值以如下公式得出: h1 = 1

2017-04-22 08:41:21 444

原创 C++模板实现梳排序

梳排序是一种改进的冒泡排序算法,通过比较元素彼此之间的步长位置这种方式先对数据进行预处理,在每次移动中,步长会越来越小,直至他等于1.这一理念就是在正式排序前先将一些大元素移动至数组的底部.之后正式排序采用冒泡排序算法来进行.

2017-04-20 20:52:30 367

原创 C++模板实现冒泡排序

冒泡排序的思想是从数组(链表)末尾开始,对相邻的两个数据进行比较,如果小数据在后面,则交换位置.直到进行到开头位置,则称为进行了一次冒泡.最小的数据被冒泡到了开头位置.然后将开头位置向后移动一个单位,依次进行冒泡,直到某次冒泡没有发生数据交换或者冒泡的循环完毕为止.

2017-04-19 21:49:32 1187

原创 C++模板实现简单选择排序

简单选择排序的思想是每次选择最小的数据,放在数组(链表)的最开头位置,然后将开头位置向后移动一个单位. 外层循环负责依次设置开头位置,内层循环负责选择从开头位置到结尾位置的最小数据,之后与开头位置进行交换.

2017-04-19 21:21:23 495

原创 C++模板实现直接插入排序

排序是数据结构中的重要章节.涉及到多种排序算法.本小节讲述直接插入排序的算法及实现.直接插入排序的思想是,插入的元素插入到一个已经排列有序的数组中,从数组末尾开始进行比较,如果发现插入的数小于被比较的数,则两数交换位置,直到没有发生交换,算法终止.算法是稳定的,时间复杂度为O(n2),空间复杂度为O(n2),内部排序,不需要额外空间.

2017-04-18 21:58:00 497

原创 (小技巧)Sql server查看sql语句的执行时间

在写数据库sql的时候,我们往往很关心该sql语句的执行效率,如下小技巧可以帮助程序员简单快速的得到某条或某几条sql的执行时间

2017-04-18 10:42:27 2743

原创 C++模板实现堆

堆是一种特殊类型的二叉树,具有以下两个性质: 1. 每个节点的值大于/小于(最大堆/最小堆)等于其每个子节点的值 2. 该数完全平衡,最后一层的叶子都处于最左侧的位置本文以最大堆为例子,实现堆的插入与删除操作.其中,堆的插入操作总是在最后的位置,删除操作总是在开头的位置.有些与队列的先进先出相似. 代码实现如下: 其中,利用数组来实现堆,数组的下标天然的可以对应堆的层次结构.若父节点下标为i

2017-04-17 21:25:10 325

原创 .net(C#)发送EMail

当工作审批流程(人事申请,审批,IT申请审批,出差申请审批)到达某种状态时,往往需要发送邮件通知给审批人或者申请人以提醒。本文利用C#完成了邮件自动发送的功能。1.实体参数的定义,这里主要用到了申请人,审批人,以及审批状态等参数。 public class EMailModel { //审批人姓名 public string ApprovalName {

2017-04-17 16:21:15 804

原创 C++模板实现二叉树(七 AVL树的删除)

AVL树的删除比插入更加耗时与复杂,主要表现在使用复制删除删除掉某个节点后,经过旋转,重新平衡之后,子树的高度可能发生变化,因此需要继续向上追溯,对父节点重新评估是否需要做重新平衡。是否需要平衡的原则是看balance value,只要出现+2或者-2就需要旋转与重新平衡。是否向上追溯取决于子树的高度是否减少,只要子树高度降低,就需要向上追溯。情况一: 不旋转,不追溯。 情况二:不旋转,向上追溯。

2017-04-16 17:35:39 520

原创 C++中的重载,覆盖,隐藏与多态

重载,覆盖,隐藏与多态是C++中面向对象设计的几大特性.深入理解这些特性,对于我们编写高效的可复用,可重用的代码有重要意义.这里,对这一部分知识加以回顾.

2017-04-12 21:30:44 373

原创 C++模板实现二叉树(六 AVL树基础与旋转)

dsw算法可以从全局平衡树,但是,往往在插入于删除动作发生时,将只影响树的一部分,此时重新平衡可以只在树的一部分进行.AVL树要求每个节点左右子树的高度差最大为1.平衡因子用右子树的高度减去左子树的高度.在AVL树中,平衡因子应该只有-1,0,1三种选择.只要AVL树中任意一个节点的平衡因子小于-1或者大于1,树就要失去平衡.

2017-04-09 10:22:02 512

空空如也

空空如也

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

TA关注的人

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