自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

听老罗娓娓道来

分享经验分享快乐

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

原创 为什么客户端不需要绑定IP地址和端口号

**因为服务器是时时在监听有没有客户端的连接 如果服务器不绑定IP和端口的话,客户端上线的 时候怎么连到服务器呢,所以服务器要绑定IP和端口 面客户端就不需要了,客户端上线是主动向服务器发 出请求的,因为服务器已经绑定了IP和端口,所以 客户端上线的就向这个IP和端口发出请求,这时因为 客户开始发数据了(发上线请求),系统就给客户端分配 一个随机端口,这个端口和客户端的IP会随着上线请

2017-11-24 02:26:01 6876

原创 花几分钟轻松搞定快速排序算法

//快速排速算法,使用迭代 array待排序的数组, s是数组的首索引,t是最后一个元素索引void QuickSort(int[] array, int s, int t){ //定义变量保存被排序的数组索引 int i = s, j = t; //一个元素就没有必要排序了吧,所以索引s必须小于t if(s < t) {

2017-11-18 03:26:58 274

原创 直接插入排序算法详解

//直接插入排序 array待排序的数组 n数组的元素个数void InsertSort(int[] array, int n){ //我们默认第一个元素也就是索引为0的有序 //循环遍历索引1--n-1对应的数据进行排序 //依次从索引1开始到最后一个元素一一和当前索引前面的元素进行一一的比较进行排序 //定义循环需要的变量 int i = 1;

2017-11-17 23:22:55 2180 3

原创 用造小人让你彻底搞懂什么是建造者设计模式

那么到底什么建造者设计模式呢,当然设计模式其实就是代码一种组织方式。那么我们的造人代码为什么需要这种代码组织结构呢,如果不用会发生什么,用了又会怎么样。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace

2017-11-17 19:33:14 1625

原创 送礼物案例搞定代理模式的应用

什么是代理模式呢,其实代理模式是我们造一个代理者,然后和这个代理者去通信,然后这个代理者其实是持有其他对象的,从而我们就可以通过控制这个代理对象而控制了代理对象所持有的对象。//被接受礼物的类class SchoolGirl{ //字段名称 private string name; public string Name { get

2017-11-17 18:23:02 398

原创 简单工厂设计模式实现商店买牙膏收费案例过渡到结合策略模式的理由全解

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 商城促销__策略模式{ //现金收费抽象类 abstract class CashSuper {

2017-11-17 15:41:38 386

原创 简单工厂设计模式实现计算器的案例

```using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 简单工厂模式{ class Program { static void Main(string[] args)

2017-11-17 02:16:33 616

原创 几分钟搞定二叉排序树的删除节点算法漫谈无代码

我希望看到我这博客的时候是已经对应生成二叉排序树算法已经很熟悉了,删除节点的时候 也许我们会删除20那个节点,那么我们只需要把30节点的左子指针域设置null, 然后释放节点20的内存地址,如果想得到被删节点的数据可以返回, 这种节点是叶子节点,既没有孩子节点,比较简单,还有一种情况比如 40 和85节点 ,只有一个孩子节点,也比较简单,比如40,我们只要把30的右指针域保存40的孩子节点地址就可

2017-11-16 23:28:16 3277

原创 树的查找-->二叉排序树的查找算法全解

分析二叉排序树的定义:根节点25 的左右子树, 18左子树的全部节点大小是小于25的,右子树的全部节点是大于25的。 同样46作为根节点的左右子树也是满足上述性质。那么这样的二叉树就是二叉排序树。特别注意二叉排序树里面不存在2个相同的节点数据那么二叉排序树查询元素的过程是什么样的呢,其实如果你们看过我写的二分查找的博客,你们会很清楚,每次查询都是将元素查询范围减少1半,其实是比较类似的。因此我们

2017-11-16 18:58:25 1947

原创 老罗带你轻松搞定针对索引存储结构的分块查询算法

先上个图,比较清晰分析:数据表是什么呢,比如我有个数组是被查询的集合,那么这个数组就是数据表,那么什么是索引表其实就是保存了数组里面的某些元素和索引值。继续看实例:如果我们针对数据表从8 —-到87这些元素中找具体某个元素的话,由于是没有排序的,那么肯定是不能进行二分查找,如果是顺序查询数据量又太多,效率太差,因此我们想个办法,能不能让这个数组中的每段数据是无序的,但是每段数据的最都小于下段数据的每

2017-11-16 14:45:57 421

原创 彻底轻松搞定顺序存储结构元素的二分查找的时间复杂度优势以及如何算时间复杂度

二分查找也叫折半查找,根据字面意思大概知道是怎么个查找具体一个元素的吧。首先分析下查询过程: 我们先通过被查询的数组得到该被查询数组的第一个索引和最后一个索引值,假如我们拿数组10个元素来做例子我们得到索引0和索引9 mid = (min(0) + max(9))/2 mid =5 得到中间索引然后就测试当前这个索引对应的元素是不是我们想要的元素,是的话就直接返回元素的索引下标,否则我们根

2017-11-16 13:45:23 2396

原创 几分钟搞明白生成树和最小生成树的定义

注意文字意思:不管是生成树还是最小生成树一定还是输,千万别和图混淆了。下面来说生成树:我们这棵树是针对图来说的,如果你们已经知道极小连通子图就非常简单了, 极小连通子图什么意思呢,就是我们把图中的全部节点连接起来,假如n个节点那么,边是n - 1条。注意形成的一定是一棵树才是生成树。好了回到正题: 那么我们的生成树怎么在图的基础上生成的呢? 我们学了图应该知道有2种遍历方法:1深度优先

2017-11-15 07:57:53 39437 1

原创 递归解决汉罗塔问题到底多么简单

这个移动盘的问题, 分析:假如我们的目的就是Hanoi(n,x,y,z); 表示n个盘片 并且都在x处, 我们是可以借助y把n个盘片放到z上,并且不能出现大盘片在小盘片上面的情况因此我们可以分解问题,既然是n个盘片需要移动,那么我们可以先把n-1个盘片全部移动到y上,是不是就剩余1个盘片在x处,我们直接把第n个盘片搬到z上,然后在把n-1个盘片搬到z上,是不是搞定。问题就转换为我们需要把n-1

2017-11-14 13:36:04 3263

原创 利用栈数据结构彻底搞定走迷宫案例解析(并非最短路径)

先上迷宫图 迷宫数据图我们分0 1 -1 三种可能 0表示可以走白色表示 1表示障碍物 -1表示已经走过 方位规则设置: 方位也就是我们下面的di的取值为0 1 2 3 这四个方位 表示当前格子可行走的方位迷宫算法分析: 刚开始的时候我们是有迷宫起点也就是(i,j)是当前起点方块 并且还没有找到当前方块的下一个行走方位,我们根据上面的介绍我们知道方位根据顺时针开始标号为

2017-11-13 10:19:08 1394

原创 带你彻底搞定希尔排序是个什么情况

首先希尔排序是怎么来的,为什么叫希尔排序。这个算法其实是一个叫什么shell发明的。我们中文翻译过来的。所以名称由来搞定了吧。那么希尔排序有个希尔增量序列,这个是什么意思,比如我们有个数组这个增量就是数组索引间隔比如我的希尔增量是5,那么我们在排序的时候就是比如81这个数就作为手里拿的第一张牌,先不动,然后我们在这个牌的基础上+5,就找到了35这个牌,进行比较35小,就把35放到81这个位置,而我们

2017-11-12 15:58:17 2531 4

原创 利用拿扑克牌让你几分钟搞定插入排序算法

先拿一个j,然后拿到一个k放在j的后面接着拿到一个A,放入k后面,现在拿到一个Q 那么我们必须把Q插入到K中,那么我们必须拿Q和A到J之间的一一比较最终找到一个合适的位置插进去。现在上代码 //插入排序算法 需要参数为待排序数组以及数组的元素个数nvoid Insertion_Sort(ElementType A[], int n){ //代表数组的1到n-1的索引 表示我

2017-11-12 12:20:20 4484 1

原创 通俗易懂的让你彻底搞懂冒泡排序的由来

先上图:冒泡排序是属于简单排序当中的,为什么叫冒泡排序呢, 假如我们把我们的元素用泡泡去比喻,那么数据不同,泡泡就不同大小。假如我们想把数据从小到大排序,那么在排序的过程中小泡泡会慢慢往上被交换出来也叫冒上来。分析冒泡过程:既然冒泡排序就是元素不断交换的过程,那么我们图中假如有5个泡泡,那么我们假如开始第一趟冒泡比较,第一个泡和第二个泡比较大小,大的泡泡会放在下面的位置,那么...

2017-11-12 10:30:28 17025 7

原创 几分钟明白什么叫平衡二叉树

平衡二叉树先看看上图我们将同样的数据形成二叉树,但是二叉树的高度是不同的。 我们都知道二叉树的高度不同那么查找元素的平均时间是不同的。平均查找时间是怎么计算的,我们是把每个节点查找的次数加起来除全部节点数就是平均查找时间,而每个节点找到的时间就是二叉树的层 比如第一幅图 jan的查找次数是1 Feb 就是2 全部加起来除全部节点数那么我们得到这三幅图的查找效率最高的是第二幅图。 直接根据

2017-11-12 09:50:29 6214

原创 彻底搞定二叉搜索树c++版本

今天我们的主题是二叉搜索树也有叫二叉排序树还是和以前一样,我们谈某个技术之前先谈谈出现的理由:二叉搜索树那么到底是什么,做什么的,根据字面意思其实就是使用特定二叉树的特性去查找树里的某个元素。我们先来谈谈查找的概念: 查找分静态查找和动态查找静态查找:比如我们在字典里找个单词,所谓静态就去查找元素的时候,并不会去改集合,比如我查找单词,假如字典里没有想要的单词,你是不会把你这个单词插入到字典里面的。

2017-11-12 09:39:50 363

原创 几分钟搞定队数据结构在非递归层序遍历算法中的应用

研究队数据结构在层序遍历算法的应用之前:我们先需要了解几个基本知识,首先队数据结构是什么,有什么特性也就是不同点。 首先队数据结构其实也就是数据类型,只是这个数据类型里面在堆上开了一定的内存,可以保存大量的元素,其次进入的元素,当前我们想要取保存的元素不能像数组类型那样根据下标任意的取数据元素。 队数据结构只给我们提供了pop操作和Push操作,底层代码其实是在内存两端进行操作的。层级遍历又是什

2017-11-12 03:09:10 707

原创 非递归中序遍历二叉树算法详解

注意学习这个算法需要随时可以在脑海中输出二叉树的中序遍历的序列 举例:如上图,我们就看到一棵二叉树:那么我们是不是马上可以想到这棵二叉树的中序遍历序列是什么呢?我直接给出答案:D B EF A G H C I 我们如果不适用递归中序遍历二叉树即实现输出二叉树中的全部数据并且每个节点只访问一次的操作。那么在我们的算法中是通过单独开内存来保存节点数据,我们这个内存指的其实就是我们学过的栈数据结构S

2017-11-11 11:10:07 32321 3

原创 轻松让你彻底搞定c++版 线索二叉树的线索化算法

二叉树图首先我们要先谈谈线索二叉树数据结构的出现理由,为什么要出现。我们可以不用线索二叉树吗,那是肯定的。谈线索二叉树之前你必须对二叉树的链式存储结构遍历非常了解。如果不了解请先搞懂先,我们知道二叉树的节点数据类型有如下几种设计孩子双亲节点,我就谈这一种设计。孩子双亲那就说明这个节点数据保存了孩子和双亲的地址,可以立马找到当前节点的孩子和双亲,但是如果我想不用遍历就得到比如中序遍历后的当前节点的前序

2017-11-11 02:24:47 818

原创 计算机图形学之纹理的作用

说到纹理我们很难用文字描述:我先上图:大家发现了什么吗。 细细看: 我们第二幅模型是通过纹理映射技术给了模型一些真实感,纹理映射这个概念待会谈。那么大家千万不要以为第二幅图就一定使用了纹理映射不一定的。现在就谈纹理的好处: 我们有了纹理,那么我们就可以把模型的表面通过纹理给覆盖上去,这样的话我们做模型的人就不要那么辛苦的去构造模型和材质细节,节省了大量人力和时间。如果我们站在像素级别角度,我们

2017-11-10 06:15:35 7333 1

原创 几分钟搞懂c#之FileStream对象读写大文件

还是一样,我先上代码,但是为了你们测试结果和我一样,必须先有准备工作,否则会找不到目录或者文件就没有效果;既然是读取大文件,那么这个文本必须存在现在来看目标目录其实这里的文本文件可以删除,因为我们写入文本数据的时候的模式是当没有找到文件就创建新的。下面上的上代码“` using System; using System.Collections.Generic; using System.IO;

2017-11-09 05:07:06 25946 9

原创 几分钟让你彻底搞懂 c#之using和try-catch-finaly的区别和联系

还是和以前一样废话不多说我先上代码“` using System; using System.Collections.Generic; using System.IO; using System.Reflection; using System.Text;namespace IO目录管理 { class Program { private strin

2017-11-09 04:41:19 8561 2

原创 文件流FileStream技术出现的理由漫谈

还是废话不多说,一般我们读写文本通过File类中的几个方法是可以满足我们的需求的,如下 File.ReadAllLines("文件路径")这个方法读取文本的时候是把文本中的每一行数据读取到一个字符串当中,然后就返回一个字符串数组 File.ReadAllText("文件路径");这个方法读取文本的时候是一次性把文本中的全部数据包括换行符读入到一个字符串当中。我们就可以直接输出 Fil

2017-11-09 03:06:27 2883 3

原创 几段代码让你彻底搞懂编码出现乱码问题(File类的几个读写文本问题)

废话不多说;我先上图我的代码是用File类读取文本里面的内容,开始也是我写入的。 其实关于编码乱码问题,很多人都说你打开文本另存为UTF-8就搞定。 那么如果我来说下里面的原理;其实我们默认不写编码格式就默认为ASCII. 因此当我们打开去看的时候用的编码格式默认其实是UTF-8 你写入和读取的编码不同,肯定不行。看代码,“` using System; using System.Col

2017-11-09 02:23:42 3898

原创 彻底搞懂C#之Yield Return语法的作用和好处

还是和以前一样,我先上代码,请大家先拿到我的代码或者你跟着敲,运行看效果,以及理解每行带代码的作用。 我们要带着为什么要用Yield这个关键字,不用可以吗这个目的去学知识,我相信会更加的有意思。首先我贴出平时正常输出偶数集合的办法/* * * 学习Yield Return 语法 * 使用两个方法,显示1 - 100之间的全部偶数 * * */using System;usin

2017-11-09 00:11:27 52041 12

原创 彻底搞懂事件与委托在商业项目的应用以及区别

废话不多说,先贴代码,同样希望大家上机测试,运行,在分析每行代码的作用,每行代码作用我已经上注释/* * * 事件注册方: * 目的:负责事件的注册,至于事件什么调用,如何调用不关心 * * */using System;using System.Collections.Generic;/// <summary>/// 商业项目中事件与委托的应用

2017-11-08 22:58:42 345

原创 计算机图形学简单介绍

谈到计算机图形学:为啥叫计算机+ 图形学 因为我们是通过计算机把现实中的图形或者想像的图形呈现在显示器上的一个过程,因此简称计算机图形学。那么图形学到达是做什么的呢?图形学研究如果在计算机中表示图形以及让计算机计算和显示图形的原理和算法的。现在我们来谈谈计算机是如何绘制我们想要的图形,比如我们需要计算机绘制或者叫渲染出一个教室的图形或者风景图。那么我们分三步:第一步:我们肯定需要告诉计算机我们需要

2017-11-08 21:15:34 6286 1

原创 几句话让你明白约束的作用

public class AA { public void Display() { }}public class MyGengeric<T>{ public T GetMax<T>(T num1,T num2) where T:AA { num1.Display(); num1.a = 20;

2017-11-07 17:12:18 441

原创 C#中Dictionary<Tkey,Tvalue>泛型集合漫谈

Dictionary

2017-11-07 15:27:00 1496

原创 c#之站在IL语言角度彻底搞定HashTable输出的值和插入的时候顺序不一样

我贴出代码让大家上机测试:支持上机 using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace 基本功修炼 {class Program{

2017-11-07 15:01:17 556 2

原创 c#之通过自定义集合彻底搞懂foreach这个语法糖

**我直接贴出代码,每个代码的作用我已经注释上,后面在单独分析下语法糖,一定要上机测试。 using System; using System.Collections; using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 基本

2017-11-07 13:40:57 1735

原创 c#中的二维数组和交错数组的区别

namespace 基本功修炼 { class Program { static void Main(string[] args) { //定义二维数组 int[,] iArray = new int[2, 2]; iArray[0, 0] = 1; //给二维

2017-11-07 08:41:20 4968

原创 C#之base和this关键字内部神秘面纱

base和this的区别和联系区别:base并不是对象 而this是代表当前执行代码体所在的对象,是可以直接输出的,base你可以看成一种标识符,或者看成身份证,或者看成名称空间的作用。联系都可以通过base和this调用对象上的实例上的可访问成员变量和成员方法。现在来谈下base中的对象地址是什么时候开始保存的,当我们创建对象的时候,开辟完对象的内存空间的时候,编译器将会拿到内存地址首地址

2017-11-06 04:27:22 399

原创 C#之internal访问修饰符

internal:中文翻译为内部的。 那么我们假如作为C#程序的开发者 当我们建立一个类的时候开始不写类的访问修饰符是什么样呢 class Test { //定义字段 internal protected int intNumber = 23; } 其实也许很多人以为是等价于 public class Test

2017-11-06 01:52:08 17723

原创 数据结构中的线性表代码实现

// 线性表.cpp: 定义控制台应用程序的入口点。 //define ElemType intdefine OK 1define ERROR 0include “stdafx.h”includeinclude

2017-11-04 22:08:31 1049

原创 算法与算法设计的几大准则

算法的定义那么算法到达什么,首先分2个层面,在现实世界里,算法就是 解决问题的一个方案,比如我要修一栋房子,我们先打地基,在造框架,在砌墙,在粉刷,在装饰,。这个算一种针对修房子问题的一种解决方案,但是修房子是只有这一种方案吗,肯定很多的,但是一些基本思路也行一样。所以算法在具体场景中是针对某个问题提出的一种解决方案。那么现在谈我们要真的需要涉及的概念就是在编程中的算法到底什么,首先我们需要找到

2017-11-04 05:05:52 4074

原创 数据结构基本概述

课程简介首先我要谈一谈数据结构到达是干什么,又是研究什么? 我直接开门见山把,数据结构根据字面意思就是针对数据的,那么我们研究的是数据的特性,数据之间的逻辑结构,数据之间的物理结构或者称数据的存储结构,以及针对一个具体应用围绕数据设计的算法。 下面来具体解析下什么是计算机中的数据(Data):只要你可以输入到电脑并且可以被编程语言处理的符号就算是计算中的数据。那么在现实中代表什么呢,比如图像,

2017-11-04 04:13:51 324

空空如也

空空如也

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

TA关注的人

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