
ジ﹋★☆『 高级编程 』
文章平均质量分 84
陈言必行
关注我,有问题私聊我。我是一个从事Unity游戏开发攻城狮,优快云博客专家,U3D论坛版主,InfoQ&阿里云签约博主,8年开发经验,助你日常不加班。
展开
-
线性表简介
什么是线性表? 链表,单链表双链表循环链表静态链表原创 2017-09-22 18:53:56 · 712 阅读 · 0 评论 -
SourceTree 免登陆操作
今天在自己电脑上使用SourceTree的时候登陆上遇到了问题,,怎么都登陆不上去,,很费解,,,不得已搜集了一下大神们的免登陆方式,,在这里和大家分享一下: 安装之后需要使用账号登陆以授权,以前是可以不登陆的,但是现在是强制登陆,有的时候登陆很费劲,操作不当的话登陆好几次都登陆不上,,,有的时候对网络要求还很高,,很不方便, ,所以下面这种方式还是挺好用的,,,安装之后,到用户本地文件夹下的 So原创 2017-09-27 20:56:48 · 921 阅读 · 0 评论 -
C#代码实现 快速排序
快速排序由于排序效率综合来说你几种排序方法中效率较高,因此经常被采用,再加上快速排序思想—-分治法也确实实用快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 该方法的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的原创 2017-09-27 21:20:51 · 1059 阅读 · 0 评论 -
设计模式之单例模式简介
设计模式是什么???在开发程序的过程中经常遇到一些典型的问题,在对这些问题进行处理解决的过程中,慢慢的整理出来一套系统的解决方案,这套方案就称之为“设计模式”在开发过程中也会遇到很多针对性的问题,我们就可以学习前人总结好的各种各样的设计模式,来解决这些编程开发中的问题。举个栗子: 玩王者荣耀的玩家都知道,在冒险模式的挑战中有个《血王宫回忆》关卡,保证孙膑,钟无艳不死通关,,这时网上就会有很多的 攻原创 2017-11-20 21:57:41 · 670 阅读 · 0 评论 -
分治算法的简介
分治策略是:对于一个规模为N的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为K个个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原来的问题的解,这种算法设计策略叫做分治法。分治法的精髓: 分 – 将问题分解为规模更小的子问题; 治 – 将这些规模更小的子问题逐个击破; 合 – 将已解决的子问题合并,最终得出“母...原创 2017-12-13 22:47:49 · 651 阅读 · 0 评论 -
C# 二叉树的简介
什么是二叉树???二叉树是树结构的一种特殊形式。它是n个节点的集合,每个节点最多只能有两个子结点,二叉树的子树仍然是二叉树。二叉树的一个结点对应的两个子树分别称为左子树和右子树。由于子树有左右之分,因此二叉树是有序树。二叉树还可以进一步细分为两种特殊类型。满二叉树,完全二叉树(如上图)满二叉树:即在二叉树中最下一层的叶节点外,每层的节点都有两个子结点。 完全二叉树:即在二叉树中除原创 2017-12-18 22:50:53 · 1126 阅读 · 0 评论 -
C# 二叉排序树
二叉排序树,又称为二叉查找树。它或者是一颗空树,或者是具有下列性质的二叉树:原创 2017-12-24 21:50:12 · 708 阅读 · 0 评论 -
堆的简介以及堆排序
什么是堆? 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:Key[i]=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足: Key[i]>=Key[2i+1]&&key>=key[2...原创 2017-12-25 21:40:44 · 835 阅读 · 0 评论 -
树的简介及存储结构
树是一种重要的非线性的数据结构,直观地看,它是数据元素(在数中称为节点)按分支关系组织起来的结构,很像自然界中的数那样。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示。树在计算机领域中也得到广泛应用,如在编译源程序如下时,可用树表示源源程序如下的语法结构。又如在数据库系统中,树型结构也是信息的重要组织形式之一。一切具有层次关系的问题都可用树来描述。定义编辑 一棵树(...原创 2017-12-17 22:54:12 · 962 阅读 · 0 评论 -
堆排序 -- C#代码实现
using System;namespace _3_1_1堆排序_顺序存储{ class Program { static void Main(string[] args) { int[] data = { 50, 10, 90, 30, 70, 40, 80, 60, 20 }; HeapSort(d原创 2017-12-26 22:43:56 · 780 阅读 · 0 评论 -
动态规划--C#求解01背包
背包问题(Knapsack problem)是一种组合优化的NP完全问题。给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。应用: 背包问题出现在各种领域的现实世界的决策过程中,例如寻找最少浪费的方式来削减原材料, 选择投资和投资组合,选择资产支持资产证券化 ,和生成密钥为Merkle-Hellman 和其他背包密码系统1,穷举法(把所有情况列出原创 2018-01-01 22:34:28 · 1866 阅读 · 0 评论 -
动态规划 -- 活动时间问题
活动时间问题描述:有n个需要在同一天使用同一个教室的活动a1,a2,…,an,教室同一时刻只能由一个活动使用。每个活动ai都有一个开始时间si和结束时间fi 。一旦被选择后,活动ai就占据半开时间区间[si,fi)。如果[si,fi]和[sj,fj]互不重叠,ai和aj两个活动就可以被安排在这一天。该问题就是要安排这些活动使得尽量多的活动能不冲突的举行(最大兼容活动子集)。动态规划法代码实现:usi原创 2018-01-04 22:09:13 · 2772 阅读 · 0 评论 -
动态规划 -- 钢条切割
动态规划(Dynamic Programming)什么是动态规划,我们要如何描述它?动态规划算法通常基于一个递推公式及一个或多个初始状态。当前子问题的解将由上一次子问题的解推出。动态规划和分治法相似,都是通过组合子问题的解来求解原问题。分治法将问题划分成互不相交的子问题,递归求解子问题,再将他们的解组合起来,求出原问题的解。与之相反,动态规划应用于子问题重叠的情况,即不同的子问题具有公.........原创 2017-12-28 22:25:40 · 936 阅读 · 0 评论 -
贪心算法简介 -- 活动时间问题
贪心算法简介: 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。基本思路 思想 贪心算法的基本思路是从问题的某一个初始解出发一原创 2018-01-04 22:09:46 · 1195 阅读 · 0 评论 -
数据结构几个基本概念
程序设计 = 数据结构 + 算法数据结构:是互相之间存在一种或多种特定关系的数据元素的集合数据:数据:是描述客观事物的符号,是计算机可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合,,,其实数据不仅仅是什么整形,浮点型,而是所有的具备可以输入到计算机中,能被计算机处理的,,都可以叫做数据,,比如说非数值型数据:声音,图片,视频等都是可以用编码手段编程字符数据来原创 2017-09-14 19:23:11 · 1789 阅读 · 0 评论 -
算法和数据结构
数据结构和算法的关系:官方说法网上随便一搜一大堆,有些让人挠头,举个小例子说明一下吧,(摘自大话数据结构)今天你准备和女朋友去看音乐剧,到了剧院,抬头一看《梁山伯》18:00开演,一问才知道,饰演祝英台的演员生病了,来不了,,就只能改成了这样,,,你觉得还有看的价值吗?,,算法和数据结构也是如此,,,算法:(Algorithm)算法是解决特定问题求解步骤的描述,在计算机原创 2017-09-14 20:10:39 · 727 阅读 · 0 评论 -
观察者模式
定义对象间一种一对多的依赖关系,使得当一个对象改变状态,则所有依赖于他的对象都会得到通知并被自动更新。有三只动物,Tom猫,Jerry和Jack鼠,当猫叫的时候,触发事件CatShout,然后两只老鼠开始逃跑(MouseRun),我们使用观察者模式来实现原创 2017-09-16 11:09:34 · 617 阅读 · 0 评论 -
前缀,中缀,后缀表达式简介及转换 -- C# 简化小例
前缀表示法前缀表示法又叫波兰表示法,他的操作符置于操作数的前面(例:+ 1 2),是波兰数学家扬·武卡谢维奇1920年代引入的,用于简化命题逻辑。因为我们一般认为操作符是在操作数中间的,所以在日常生活中用的不多,但在计算机科学领域占有一席之地。一般的表示法对计算机来说处理很麻烦,每个符号都要考虑优先级,还有括号这种会打乱优先级的存在,将使计算机花费大量的资源进行解析。而前缀表示法没有优先级的概念,他原创 2017-09-22 20:11:31 · 2265 阅读 · 0 评论 -
中缀表达式转后缀表达式--C# 代码实现
使用计算机进行表达式的转换 平常我们用的标准四则运算表达式,如“1+(2-3)*4/5”叫做中缀表达式,,, 中缀转后缀表达式的规则是:从左到右变量中缀表达式的每个数字和符号,若是数字就输出,即成为后面表达式的一部分,若是符号,则判断其与栈顶符号的优先级,是右括号或者有限级低于栈顶符号(先乘除后加减),则栈顶元素依次出栈并输出,并将当前符号进栈,一直到最后输出后后缀表达式为止,,,以“9+(原创 2017-09-22 22:23:45 · 3466 阅读 · 3 评论 -
后缀表达式求值
后缀表达式求值 规则:从左到右遍历表达式的每个数字和符号,遇到数字就进栈,遇到字符就将栈顶的两个数据出栈,进行运行,运算结果进栈,一直到最终获得结果,,, 例: 9 3 1 - 3 * + 10 2 / + 以此表达式为例,,, 初始化一个空栈,此栈用来对数字进入使用,,, 后缀表达式前三个都是数字,所有9 3 1 进栈,,,如下图: 接着是“-”,,所以栈中的1作为减数,3出栈原创 2017-09-23 16:29:01 · 1775 阅读 · 0 评论 -
C# 之 栈和队列简介和使用
编程判断一个字符串是否是回文。回文是指一个字符序列以中间字符为基准两边字符完全相同,如字符序列“ ACBDEDBCA”是回文。算法思想:判断一个字符序列是否是回文,就是把第一个字符与最后一个字符相比较,第二个字符与倒数第二个字符比较,依次类推,第 i 个字符与第 n-i个字符比较。如果每次比较都相等,则为回文,如果某次比较不相等,就不是回文。因此,可以把字符序列分别入队列和栈,然后逐个出队列和出栈并原创 2017-09-24 16:21:31 · 1051 阅读 · 0 评论 -
C# 代码实现 顺序队列和链队列
和上篇栈的实现基本是一个思路: 废话不多说,直接写代码吧,,,//自定义队列接口namespace 队列{ interface IQueue<T> { int Count { get; } int GetLength(); bool IsEmpty(); void Clear(); void Enq原创 2017-09-24 16:54:34 · 1180 阅读 · 0 评论 -
C# 代码实现 顺序栈和链栈
自己定义的栈的接口,完全是按照栈的常用方法以及命名方式实现: 注意以下类,接口都是在一个命名空间下,,,栈的接口:包括了常用的方法,,,namespace 栈{ interface IStackDS<T> { int Count { get; } int GetLength(); bool IsEmpty(); v原创 2017-09-24 16:48:32 · 1510 阅读 · 0 评论 -
Git可视化工具SourceTree的使用
首先我们需要安装SourceTree软件,,官网链接 点击下载然后选择安装目录,一路NEXT就可以了,,, 安装后需要使用你的谷歌邮箱登录,注意一定是谷歌邮箱,(在这个坑上栽了很久,,,)下面直接介绍使用方法,,, 首先需要在自己的Git网站上,创建新存储库,, 然后根据提示信息,创建自己的项目,,如下图 选中上图的HTTPS,然后复制上面网址,,,现在打开本地的Sourc原创 2017-09-20 22:09:54 · 880 阅读 · 0 评论 -
Git 添加文件到版本库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。通过git init命令把这个目录变成Git可以管理的仓库:瞬间Git就把仓库原创 2017-09-20 15:14:29 · 4063 阅读 · 0 评论 -
本地上传到git上的命令
1,(先进入项目文件夹)右键文件夹点击“Git Bash Here”,然后通过命令 git init 把这个目录变成git可以管理的仓库git init2、把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件git add .3、用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明git commit -m原创 2017-09-19 22:39:34 · 1990 阅读 · 0 评论 -
SVN 客户端基本用法
Tortoise SVN 客户端 基本用法原文地址:点击1. export 和check outexport 下载源代码用法:1、新建一个空的文件夹,右键点击它,可以看到TortoiseSVN菜单以及上面的SVN Checkout。2、不用管这个Checkout,我们选择TortoiseSVN菜单下的Export...,接着它会让你输入url。转载 2017-09-04 18:05:28 · 922 阅读 · 0 评论 -
Git的简介和产生
Git是什么?Git是目前世界上最先进的分布式版本控制系统(没有之一)。Git有什么特点?简单来说就是:高端大气上档次!那什么是版本控制系统?如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个原创 2017-09-04 15:18:14 · 663 阅读 · 0 评论 -
Git 常用命令速查
Git 常用命令速查git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释 git remote add origin git@192.168.1.119:ndshowgit原创 2017-09-04 15:29:07 · 544 阅读 · 0 评论 -
简单工厂模式
简单工厂模式 面向对象编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类简单工厂模式最大的优点在于工厂类中包含了必要的逻辑判断,原创 2017-09-16 11:41:29 · 546 阅读 · 0 评论 -
C# 之 静态方法和非静态方法对比
C# 静态方法和非静态方法简析, C# 静态方法和非静态方法的区别,C# 静态方法和非静态方法的内存占用误解原创 2019-03-29 22:15:55 · 3924 阅读 · 0 评论