自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 12.归并排序

归并排序(Merge Sort)先把数组从中间分成前后两部分,然后对前后两部分分别排序,再将排好序的两部分合并在一起,这样整个数组就都有序了分之思想,分而治之。分治是一种解决问题的处理思想,递归是一种编程技巧递推公式:merge_sort(p…r) = merge(merge_sort(p…q), merge_sort(q+1…r))终止条件: p >= r 不用...

2019-08-28 00:06:49 227

原创 11.排序-冒泡、插入、选择

插入排序和冒泡排序的时间复杂度相同,都是 O(n2),我们更倾向于使用插入排序算法。原因:xxx如何分析一个排序算法:1执行效率(1)最好情况、最坏情况、平均情况时间复杂度(2)时间复杂度的系数、常数 、低阶小规模数据,同阶比较,系数和常数也很重要(3)比较次数和交换(或移动)次数2.内存消耗原地排序,空间复杂度是o(1)。3.稳定性如果...

2019-08-27 19:32:29 148

原创 10.递归

递归是一种应用非常广泛的算法(或者编程技巧)很多数据结构和算法的编码实现都要用到递归,比如 DFS 深度优先搜索、前中后序二叉树遍历等等递归需要满足的三个条件1. 一个问题的解可以分解为几个子问题的解2. 这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样3. 存在递归终止条件分析:有 n 个台阶,每次你可以跨 1 个台阶或者 2 个台阶,请问走这 n 个台...

2019-08-24 16:57:44 209

原创 9.队列

特点:先进先出,一种操作受限的数据结构;两个基本操作:入队 enqueue(),放一个数据到队列尾部;出队 dequeue(),从队列头部取一个元素。顺序队列:数组实现,队列大小受限;链式队列:链式实现,可无限排队,可能导致排队等待,响应时间长;队列需要两个指针:一个是 head 指针,指向队头;一个是 tail 指针,指向队尾。调用两次出队操...

2019-08-19 12:48:16 259

原创 Go-goroutine和通道

goroutine通信顺序进程CSP,是一个并发的模式,在不同的执行体(goroutine)之间传递值,但是变量本身局限于单一的执行体。每一个并发执行的活动称为goroutine;当一个程序启动时,只有一个goroutine来调用main函数,称为主gourounie;新的goroutine通过go语句创建。语法上,在普通函数或方法调用前加上go关键字;f() //调用...

2019-08-17 16:46:18 195

转载 Go-interface

转载:https://www.cnblogs.com/zhangweizhong/p/9526331.html1. 什么是interface接口  interface 是GO语言的基础特性之一。可以理解为一种类型的规范或者约定。它跟java,C# 不太一样,不需要显示说明实现了某个接口,它没有继承或子类或“implements”关键字,只是通过约定的形式,隐式的实现interface...

2019-08-17 14:23:39 221

原创 Go-Map

map是对散列表的引用map的类型是map[k],v, k和v是键和值对应的数据类型。所有的键拥有相同的数据类型,所有的值也拥有相同的类型。键的类型k, 必须是可以通过操作符 == 比较的类型。换句话说,键类型的值必须要支持判等操作。由于函数类型、字典类型和切片类型的值并不支持判等操作,所以字典的键类型不能是这些类型。V没有限制。因为 map根据 key 来计算 va...

2019-08-17 13:46:30 129

原创 Go-slice

拥有相同类型元素的可变长度序列。通常写作[]T, 元素类型都T, 可以访问数组的部分或全部元素,这个数组称为slice底层数组。属性slice有三个属性:指针、长度和容量。指针指向数组的第一个可以从slice中访问的元素。长度是slice中元素的个数,不能超过slice的容量。容量是从slice的起始元素到底层数组的最后一个元素间的元素个数。slice操作符 s[i:...

2019-08-17 00:17:29 238

原创 Go-数组

数组初始化var a [3]int //3个整数数组,初始化值0,0,0[5] int {1,2,3,4,5} //长度为5的数组,其元素值依次为:1,2,3,4,5[5] int {1,2} //长度为5的数组,其元素值依次为:1,2,0,0,0 。在初始化时没有指定初值的元素将会赋值为其元素类型int的默认值0,string的默认值是""[...] int {1,2,3,4,...

2019-08-17 00:04:13 79

原创 Go-值类型和引用类型

值类型:int, float, bool, string,数组,结构体struct,使用这些类型的变量直接指向内存中的值,值类型的变量存储在栈区。当使用等号 “=” 将一个变量的值赋值给另一个变量时,如 j = i,实际上是在内存中将i的值进行了拷贝。引用类型:特指slice、map、channel这三种预定义类型。引用类型又更复制的数据结构。(1)分配内存:(2)初始化一系列属性...

2019-08-15 13:07:51 331

原创 Go-struct

结构体:将0个或多个任意类型的命名变量组合在一起的聚合数据类型。如:type Employee struct{ ID int Name string Address string DoB time.Time Position string Salary int ManagerId int}var dilbert Employ...

2019-08-15 12:59:53 108

原创 8-栈

特性:操作受限的线性表,只允许在一端插入和删除数据,后进先出。数组或链表确实可以替代栈,但是,特定的数据结构是对特定场景的抽象,而且,数组或链表暴露了太多的操作接口,操作上的确灵活自由,但使用时就比较不可控,自然也就更容易出错。栈主要包括两个操作,入栈和出栈。用数组实现的栈叫顺序栈;用链表实现的栈叫链式栈;时间复杂度O(1),个别情况下O(n),如自动扩容时,进行完...

2019-08-14 13:01:20 106

原创 7-链表:(下)LRU缓存

1. 原理LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,如果数据最近被访问过,那么将来被访问的几率也更高。依据此原理,可以设计微服务的二级缓存结构,用于存储经常访问的热数据,实现避免频繁访问后端数据库的相同数据逻辑。当使用该缓存当做二级缓存时,需要保证缓存中数据和后端数据的一致性。2. 实现lrucache实现是使用一...

2019-08-12 23:44:37 168

原创 6.链表(中)golang链表

双链表实现单链表实现链表中环的检测两个有序的链表合并删除链表倒数第 n 个结点求链表的中间结点1.golang源码中,双链表的实现package mainimport ( "fmt")func main() { // 创建一个链表 alist := list.New() fmt.Println("Size before : ", alist...

2019-08-12 23:25:23 312

原创 5.链表(上)

应用:LRU缓存淘汰算法链表也是一种线性表。链表的内存结构是不连续的内存空间,将一组不连续的内存空间串联起来,从而进行数据存储的数据结构。链表中每个内存块儿被称为节点Node, 节点除了存储数据外,还需要记录链表上指向下一个节点的地址,即后继指针next.链表特点1.插入、删除数据效率O(1)级别(只需要改指针).随机访问效率O(n)级别。(需要从链表头到链...

2019-08-12 22:36:27 136

原创 4.数组

数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。线性表(Linear List):数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。如:数组,链表、队列、栈等也是线性表结构。非线性表:在非线性表中,数据之间并不是简单的前后关系。比如二叉树、堆、图等。第二个是连续的内存空间和相同类型的数据...

2019-08-08 09:36:56 93

原创 3.时间复杂度分析

复杂度分析是整个算法的精髓。从 CPU 的角度来看,这段代码的每一行都执行着类似的操作:读数据-运算-写数据。尽管每行代码对应的 CPU 执行的个数、执行的时间都不一样,但是,我们这里只是粗略估计,所以可以假设每行代码执行的时间都一样,为 unit_time。所有代码的执行时间 T(n) 与每行代码的执行次数 n 成正比大 O 复杂度表示法粗略地估计算法的执行效率的方法;T...

2019-08-07 13:33:37 236

原创 2.数据结构与算法的理解

数据结构是一组数据的存储结构;算法是操作数据的方法;数据结构是静态的,是组织数据的一种方式,是为算法服务的;算法要用在特定的数据结构上,如:1.二分查找与数组的随机访问;2.汽车与公路,火车与铁轨,飞机与机场轨道及空中航线10个常见的数据结构:数组,链表,栈,队列,算列表,二叉树,堆,跳表,图,Trie树10个算法:递归,排序,二分查找,搜索,...

2019-08-05 09:45:30 110

原创 1.为什么学习数据结构和算法

为什么学习数据结构和算法1.直接好处:写出性能更优的代码;2.算法,是解决问题的思路和方法,可应用到生活中的其它方面。3.训练大脑的思考能力,逻辑思维训练。学习算法的有效方法1.动手写2.复杂度分析法(重点),考量效率和复杂度分析3.找重点学习,最常用的,最基础的4.清楚它的来历,自身的特点,适合解决的问题,实际应用场景;学习技巧1.边学边练,适...

2019-08-05 09:43:45 153

德哥的Postgresql数据库优化的培训视频(网盘链接)

德哥的Postgresql数据库优化的培训视频,从Postgtesql的安装,配置,到数据库配置文件postgresql.conf的讲解,执行计划的查看,非常详细。

2018-01-30

struts2.3API-chm

struts 2.3-12 API chm格式

2013-03-17

局域网聊天程序chat

学完java SE后的一个简单的课程设计,用于多人聊天的程序。

2012-11-23

C#网络版掷骰子源代码

C# 网络版掷骰子游戏源代码,代码详细,方便学习

2012-08-31

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

TA关注的人

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