自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RPN(reverse polish notation)-算式表达式求值和表达式的转换

用go实现的后缀表达式求值算法过程

2021-12-25 18:13:09 478

原创 ETS的表类型查找分析和并发效率

ETS的表分为set、ordered set、bag、duplicate bag,其中除了ordered set的操作时间均为O(LogN)外,其它类型的查找时间都是常量。为什么呢?首先关于存储结构的问题最根本的就是数据结构和算法问题,ETS提供的是操作内存的存储结构,在内存中我们怎么样才能快速操作一个记录呢?我们都知道在存储结构中有顺序和链式的线性结构,顺序的通过访问下标就可以获得数据,O(1);但移动和删除需要O(N)的时间复杂度,而且还要求键是整型值;再看看链式的,链式结构修改只需要O(1),但访问

2021-12-13 15:20:54 677

原创 Go指针和引用的理解

昨天刷到了一道题,这道题是关于make和new函数的区别。make和new都是go的内建(built-in)函数,作用都是用来给类型T分配内存的:var ptr *int // 虽然定义了一个变量,但它的值不指向任何内存地址ptr = new(int)var foo map[string]intfoo = make(map[string]int)第一行定义了一个指针变量。第二行使用new函数分配内存并返回指针,然后赋值给指针变量ptr。此时ptr的值指向刚分配的内存第三行定义了引用类型为

2021-12-03 17:58:15 1333

原创 关于对MySQL的“START TRANSACTION,COMMIT and ROLLBACK Statements“的常见误解

START TRANSACTION[transaction_characteristic [, transaction_characteristic] …]transaction_characteristic: {WITH CONSISTENT SNAPSHOT| READ WRITE| READ ONLY}BEGIN [WORK]COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]ROLLBACK [WORK] [AND [NO] CHAIN].

2021-11-30 14:56:50 1149

原创 用Go实现平衡二叉树

小老弟们!我今天继续更新一些内容,是关于平衡二叉树的。其它博客写的都挺好,就是我看不懂,,所以自己来总结下,操

2021-11-26 00:13:01 319

原创 Go语言实现堆排序

今天继续更新排序算法,这次要讲的是堆排序,堆看起来像二叉树,表现起来也像二叉树,其实不是的,堆是满足完全二叉树的一维数组。其实可以用二叉树来描述堆排序,但是大家都知道,二叉需要用额外的内存来维护左、右子树的信息,所以用数组无疑是更合适的。堆是一种非线性结构,(本篇随笔主要分析堆的数组实现)可以把堆看作一个数组,也可以被看作一个完全二叉树,通俗来讲堆其实就是利用完全二叉树的结构来维护的一维数组。堆的这种特性非常的有用,堆常常被当做优先队列使用,因为可以快速的访问到“最重要”的元素按照堆的特点可以把堆分为

2021-11-23 12:22:45 1161

原创 用Go语言实现插入排序算法

今天继续来写排序算法,这次是插入排序。先了解什么叫插入,书籍中说的是“把一条记录插入到已排好序的有序表中,从而得到一个新的、记录数量增1的有序表”。教科书就是教科书,说话都说的稀里糊涂,怪不得那么多人学校都学不好数据结构和算法这门课。。。垃圾教编。抛开书本,插入排序的重点在于插入,那插入的标准是什么?或者我们应该在什么情况需要把遍历的记录值插入进去?首先,我一次给你一个数字让你按照大小顺序来填入空格,第一次给你一个8,第二次给你一个2,虽然给的顺序是8-2,但你会把2插入到8的前面。也就是说我们从第一张牌

2021-11-15 15:05:39 709

原创 用Go语言实现选择排序算法

选择排序的思想是:每一趟从待排序的记录中选出关键字最小的记录,按顺序放在已排序的记录序列的最后,直到全部排完为止。package mainimport fmtfunc main() { var array = [7]int{1,7,4,2,10,5,3} sortBySelect(array) fmt.Println(array)}func sortBySelect(nums []int) { for i := 0; i < len(nums); i++ { k := .

2021-11-11 16:34:21 718

原创 用Go语言实现快速排序算法

快速排序(Quick Sort)是由冒泡排序改进得到的。在冒泡排序过程中,只对相邻的两个记录进行比较,因此每次交换两个相邻记录时只能消除一个逆序。如果能通过两个(不相邻)记录的一次交换,消除多个逆序,就能大大加快排序的速度。上面是来自《数据结构与算法》对快速排序的概念定义,其中说过交换两个不相邻可能消除多个逆序,就可以加速排序过程。为什么?举个例子,数组(9, 5 ,1)按小到大进行排序,如果是按照冒泡排序,应该先是9和5交换,形成(5, 9, 1);接着9和1交换,形成(5, 1, 9);最后5和1.

2021-11-11 11:59:15 766

原创 三大范式和E-R图概念

之前对三大范式的概念很模糊,每次看一下概念描述过了几天就忘了,私自觉得还是这个只是过于概念化或者说自己没有理解到底,所以这个情况一直得不到解决。在最近了解了E-R图后,突然恍然大悟,写一篇短文记录下三大范式和E-R图的联系和E-R图对三大范式的解释,而E-R图就是Entity-Relationship实体-关系图,实体指表中的数据元素,而关系是描述这些数据元素的逻辑结构,这里需要对数据结构有一定认识。首先,还是先贴一下三大范式的概念,如下:I.第一范式(确保每列保持原子性)原子性保证了表中所有属性列不

2021-10-13 17:27:38 720

翻译 游戏同步NetCode概念第一部分-翻译自外网

什么是“NetCode”为了让多个玩家在不同的机器上一起玩游戏,需要一个机制保证所有机器保持同步使得玩家看得见游戏状态的精确和流畅的表现,并允许玩家输入影响共享的游戏状态。这个游戏状态代表游戏回话的当前状态(或者在MMO中,游戏世界的当前状态),包括所有玩家,NPCs,或者其他单位的位置和移动;子弹和炮弹;以及像积分,资产和资源的状态值。像移动,碰撞,命中检查和生成投射物这样的游戏事件会影响游戏状态,可以是来自玩家的输入,也可以来自游戏引擎的AI逻辑处理。影响它的状态和事件必须在所有机器之间以某

2021-08-30 16:55:00 2533

原创 Shell脚本实现冒泡排序

代码如下read -a arrayfor(i=0;i&lt;$ {#array[@]};i++){ for(j=0;j&lt;$ {#array[@]}-1;j++)}{ if [[ ${array[j]} -gt ${array[j+1]} ]];then tmp=${array[j]}; array[j]=${array[j+1]} array[j+1]=$tmp...

2018-12-16 14:02:14 705 2

原创 C语言数组初始化

/*C++使用new关键字分配内存,而C使用malloc(memory allocate)来分配内存*/#include &lt;stdio.h&gt;#include &lt;malloc.h&gt; /*使用typedef把int类型命名为新类型xx*/typedef int ElemType;typedef int Status;/*结构体定义*/typedef struct...

2018-12-16 13:56:32 671 1

原创 Erlang自动化编译组件说明

详情文档模块 make 提供了编译源文件的类似Unix的函数集合。Eshell V8.3 (abort with ^G)1&gt; make:all().执行以上命令,会在当前目录下查找名为 Emakefile 的文件,该文件定义了哪些目录下的文件需要被编译以及编译选项。如果不存在该文件,会编译默认当前目录下的模块。Emakefile 文件形式如下举例:{ [ 'src/*,...

2018-12-10 18:18:48 330 1

原创 Erlang Behaviour行为模式之一:Supervisor之说明

具体文档详看这里Supervisor(即主管进程,简称主管)负责启动、停止以及监控主管子进程。主要想法是当必需时,通过重启子进程保持他们的存活

2018-12-06 12:45:47 424

原创 Erang trap_exit的简单说明

When trap_exit is set to true, exit signals arriving to a process are converted to {'EXIT', From, Reason} messages, which can be received as ordinary messages. If trap_exit is set to false, the process exits if it receives an exit signal other than normal

2018-12-03 16:26:06 778

原创 Shell简单编程学习之一

该练习是在Bourne Again Shell (/bin/bash)环境下进行链接变量输出#!/bin/bashecho &quot;Hello World!&quot;通过修改文件权限,chmod +x /test.sh,使用./test.sh调用输出:Hello World!命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。中间不能有空格,可以使用下划线(_)。不能使...

2018-12-02 19:51:21 274

翻译 Erlang debug_info在Debugger应用中的解释

源文档地址文中写到:Interpretable modules are modules for which a .beam file, compiled with option debug_info set, is located in the same directory as the source code, or in an ebin directory next to it....

2018-11-30 15:50:49 507 2

原创 Erlang算法一章:快速排序

Erlang算法一章:快速排序快速排序算法快速排序算法快速排序的核心思想是分而治之,①把数组列表根据某一取值分成两段,左边都比中间值小,右边都比中间大,再对左右两边执行①操作即可。用Erlang语言描述比较简单,如下新建q_sort模块,函数如下:quick_sort([]) -&gt; [];quick_sort([MidVal | T]) -&gt; quick_sort([X |...

2018-11-29 10:20:45 327

转载 Erlang TCP Socket监听进程和接收进程

Erlang TCP Socket监听进程和接收进程的说明转自:https://blog.csdn.net/summerhust/article/details/8740973一旦打开了一个使用TCP连接的套接字,它就始终保持打开状态,直至任何一方关闭它或因为一个错误而终止。在建立一个连接时,一般为每一次请求产生一个新进程,只要有请求被处理,就保持这个进程的存活。假设有一个监听进程,其任务是...

2018-11-24 11:41:46 493

原创 Erlang算法一章:冒泡排序

(ERL的冒泡排序)Bubble Sorting IN ERLANG实现原理 1. 从数组的第一个元素arr[0]开始,两两比较arr[n]和arr[n+1],如果前面的数大于后面的数arr[n] &amp;gt; arr[n+1],那么交换两个元素的位置,把大的数往后移动 2. 依次经过一轮比较以后,最大的数将会被交换到最后的位置arr[n-1]实现要素: 递...

2018-03-27 14:33:00 525 2

原创 关于Erlang启动文件的说明

标准Erlang/OTP系统可以通过.erlang文件重新配置启动项具体详细解析在中文官方网站:www.cnerlang.com在这里做个简要的说明,当Erlang/OTP启动时,会在系统启动目录下搜索名为.erlang的文件,如果找不到会去用户目录下寻找该文件,该文件可以配置系统启动时的动作,即执行可在Erlang shell中执行的表达式,例如加载.beam文件等,具体做法如下:...

2018-03-12 15:59:46 1557 4

转载 [翻译]How to Interpret the Erlang Crash Dumps

原文如何解释 Erlang Crash Dumps本节介绍 Erlang 运行时系统在异常退出时生成的 erl_crash.dump 文件 注意: 在 Erlang/OTP R9C 中, Erlang crash dump 有大幅的改变。在本节中的信息不能直接应用到旧的 dumps 文件中。但是,如果你使用了 crashdump_viewer(3) 查看旧的 dumps 文件,则 cras

2017-08-21 15:00:20 661

转载 Centos安装Erlang/OTP

Erlang是一门实现高并发、具有容错和高性能的函数式编程语言,有兴趣的读者可以找相关资料了解。### 首先下载资源,想下载不同的版本只需要修改版本号即可,最新为19.3wget http://erlang.org/download/otp_src_18.3.tar.gz### 在下载目录中对.tar.gz进行解压tar -xzvf otp_src_17.3.tar.gz### 安装依赖包(安装

2017-08-11 10:56:30 1220

原创 基于erlang语言的socket通信

erlang语言实现socket聊天室关键词erlangsocketerlang语言是函数式编程语言,由Erlang之父Joe Amstrong编写出erlang原型,并在爱立信公司得到大规模应用,进而在通信行业有了一席之地,其优势在于高并发性、容错、高性能。socket是实现数据交互的最普遍的方式,Erlang/OTP中也融合了tcp协议,并通过OTP中的库简单的编程就能实现服务端、客户端的

2017-08-07 23:43:54 1003

原创 虚拟机环境中centos 6.x桥接模式下的网络配置

虚拟机环境中centos 6.x桥接模式下的网络配置本次配置分五步,如下查看操作系统的ipconfig根据本机ip地址配置Linux的静态ip在网络配置文件 /etc/sysconfig/network 中添加网关地址配置 /etc/resolv.conf重启网卡具体过程1.ipconfig查看本机ip地址 即本机ip地址为:192.168.1.100 网关为:192.168.

2017-07-27 13:33:22 491

空空如也

空空如也

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

TA关注的人

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