自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【排序】希尔排序

这里使用直接插入排序对子序列排序。 d 的取法有多种,最初Shell提出取 d = [n/2],直到d=1。Knuth 提出d= [d/3] + 1; 算法分析:对特定的待排序序列,可以准确地计算出比较次数和移动次数。但要弄清比较次数和移动次数与增量选择之间的依赖关系,并给出完整的数学分析,到目前还没有人能够做到。Knuth利用大量的实验统计资料得出,当n很大时,平均比较次数和平均移动次数大约的范围是: (使用直接排序) Shell排序是不稳定的排序 ...

2022-05-05 10:29:38 229

原创 【排序】插入排序

将未经过排序的部分插入到已排序的数组。 插入排序的操作步骤如下: 1、首先对数组的前两个元素排序。 2、接着将第3个元素与排好序的两个元素比较,插入到合适位置。 3、不断重复这个过程,直到把最后一个元素插入到合适位置。 插入排序在数据已有一定顺序的情况下,效率较好。但是如果数据无规则,则需要移动大量数据,其效率就和冒泡排序和选择排序一样差。 ...

2022-04-18 17:24:48 169

原创 经典冒泡排序

经典冒泡排序一次冒泡遍历一组数字,相邻的数字两两比较,将比较值大的放到右边,直到这一组数字全部遍历。如果没有发生冒泡,可以说明数组有序,冒泡排序算法结束。

2022-04-18 16:16:26 220

原创 直接选择排序

直接选择排序是一种简单的排序方法,它的jib 步骤如下。 在一组数据R[ i ] (i = 0, 1, ..., n-2) ~ R[n - 1]中选择具有最小排序码的数据,若它不是这组数据中的第一个数据,则将它与这组数据中的第一个数据进行交换。 给出一个具体的直接选择排序的示例图。 ...

2022-04-13 23:40:04 190

原创 并查集的一些事

并查集是一种集合的模型,一种数据结构。用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。并查集可以用来表示“森林”的概念。 通常使用一个数组维护并查集中的所有元素。数组里存的数字代表所属的集合,比如arr[4] = 1; 代表4是第一组。arr[7] = 1, 代表7也是第一组。同属第一组内的4和7在同一集合。 比如,使用名为father和int类型数组就可以实现简单的并查集。 father 数组初始化情况如下: 将1,2,3,4,5,6表示为一个集合,如下图所示。

2022-03-24 00:13:17 295

原创 MySql 中的索引

索引定义: 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。 为什么使用B-Tree(B+Tree) 红黑树等数据结构也可以用来实现索引,但是文件系统及数据库系统普遍采用B-/+Tree作为索引结构。这是因为索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上。 索引查找过程中就要产生磁盘I/O消耗,相对于内存存取,I/O存取的消耗要高几个数量级。 所以评价一个数据结构...

2022-03-01 20:52:19 546

原创 数据结构-- B树和 B+ 树

B树定义 完整定义如下:如果B树的度为M 根了节点至少有两个子节点 其它节点至少有M/2个子节点。 每个节点最多有M-1个key,并且以升序排列 位于M-1和M key的子节点的值位于M-1 和M key对应的Value之间 (key 反映了value的大小) B-tree树即B树。B即Balanced平衡,因为B树的原英文名称为B-tree,而国内很多人喜欢把B-tree译作B-树。(只有B树,和后面B树变种B+树,在没有别的。我之前一直以为有个B减树。) B 树可以看作是对2-3查找树的一种

2022-02-25 16:12:28 237

转载 数据结构-红黑树

红黑树是一种2-3查找树的一种简洁实现。本文从2-3查找树的概念开始,逐步介绍红黑树的实现原理。 从2-3树开始 2-3树运行每个节点保存1个或者两个的值。对于普通的2节点(2-node),他保存1个key和左右两个自己点。对应3节点(3-node),保存两个Key。 2-3查找树的定义如下: 1、要么为空,要么: 2、是一个2节点,该节点保存一个key及对应value,以及两个指向左右节点的节点。 3、对于3节点,该节点保存两个key及对应value,以及三个指向左中右的节点。 2-3 树的

2022-02-23 16:02:06 87

转载 并发和并行

一、定义 这里有一张图图片。 作者使用买咖啡的两种情形类比并发和并行的概念。每个买咖啡的队列就是一个线程,线程中包含需要处理的任务;咖啡机扮演者任务处理器的角色。并发处理,好比的单核cpu,它不能同时完成多个任务,为了“同时”处理多个任务,需要快速地在不同地线程之间切换;并行处理,好比多核cpu,可以真的同时完成多个任务。这就是并发和并行的基本概念。 二、说开去 递归任务并行化 对可递归的算法进行并行化是很容易的,而且效果不错,在这里总结一下大致的方法为: 对与可递归处理的算法,先写出正常的

2022-02-23 13:57:46 48

转载 字符串匹配的KMP算法

转载于:阮一峰网络日志的博客 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。 下面通过举例,解释KMP算法: 1、首先,字符串"BBC ABCDAB ABCDABCDABDE"的第一个字符与搜索词"ABCDABD"的第一个

2022-02-14 15:42:07 109

原创 Floodlight Service and Module

Floodlight Service and Module Module and service: module 是一个独立的子系统,为了和service区分,可以理解为module没有提供get方法自顾自的子系统,而service开放了一个服务供其他模块调用该模块中的方法。 这在Floodlight教程:How+to+Add+Services+to+a+Module 中可以得到验证。 参考链接:How+to+Add+Services+to+a+Module ...

2021-02-01 16:16:57 62

空空如也

空空如也

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

TA关注的人

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