Whlok
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

数据结构之排序

本文将对数据结构中的排序进行归纳学习 排序框图整理通常排序有以下俩种操作:(1)比较俩个关键字大小(2)将记录从一个位置移动到另一个位置 程序实现插入排序思想:将序列分为有序和无序俩部分,每次取一无序最左边元素插入有序元素中,一直与其前一元素比较,直至找到合适位置。第一次时,有序元素为array[0] 直接插入: 1234567891011121314151617181920212223voi
2023-10-25
数据结构与算法

TopK理解与实现

堆实现Topk时间复杂度:O(nlogk)思路: 通过小顶堆实现TopK(小顶堆的堆顶元素小于左右子树的值,当设定堆空间为K时,每次选择是否更新堆顶元素,若更新则进行相应调整) 构建堆:构建一个heap,元素个数为K,以完全二叉树的结构去理解数组中元素之间的关系,根节点为i(下标从0开始),则左儿子下标为2i+1,右儿子为2i+2; 调整小顶堆:从n/2-1的下标开始构建(完全二叉树的
2023-10-25
数据结构与算法

基于Prometheus+Grafana搭建性能监控系统

基于Prometheus+Grafana搭建性能监测工具需求 监测数据类型:JVM数据、玩家在线人数、消息时延等 接入Prometheus性能监测工具,暴露服务器性能监测数据 模式:pull/push 接入Grafana可视化数据 Prometheus框架图 搭建流程准备环境Java客户端配置 12345678910111213141516171819202122232
2023-10-25
运维部署

Operating System Three Pieces

第 9 章 调度:比例份额关键问题:如何按比例分配 CPU 比例份额算法基于一个简单的想法:调度程序的最终目标,是确保每个工作获得一定比例的 CPU 时间,而不是优化周转时间和响应时间。 比例份额调度程序有一个非常优秀的现代例子,由 Waldspurger 和 Weihl 发现,名为彩 票调度(lottery scheduling) [WW94]。 彩票调度(lottery scheduling)
2023-10-24
操作系统

多线程编程浅学

多线程编程由浅入深概念程序(program):为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 进程(process):程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程。——生命周期 (1)进程为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域 线程(thread),进程可进一步细化为线程,是一个程序内部的一条执
2023-10-24
并发编程

动态规划浅学

现在,你点进来可能是准备弄清楚啥是动态规划,,,好学的孩子呀,请问你想了解的是金规划还是银规划呀? 很抱歉,本文没有准备将动态规划给讲的透彻,但是如果能让你对动态规划有一些新的体会,那么,这扇门就可以关上了。。。 引例每当听到动态规划这个词的时候,总有一种抽象,排斥的想法,我们准备先不管TM的动态规划是个啥,家在哪,在哪工作?玩个游戏先,这个游戏叫爬楼梯 爬楼梯邻居家的小孩总是爱爬楼梯,有一天你去
2023-10-24
数据结构与算法
#动态规划

算法设计基础与分析

绪论什么是算法一系列解决问题的明确指令,对于符合一定规范的输入,能够在有限的时间内获得要求的输出。 例子:最大公约数:俩个不全为0 的非负整数$m$和$n$的最大公约数记为$gcd(m,n)$​,代表能够整除(即余数为0)$m$ 和$n$的最大正整数。 欧几里得算法 $gcd(m,n)=gcd(n, m \ mod \ n)(m \ mod \ n 表示m除以n 之后的余数)$​​​ $
2023-10-24
数据结构与算法

Java集合框架

java中的集合包括三大类,它们是Set、List和Map。它们都处于java.util包中,Set、List和Map都是接口。 本文参考源码为 jdk1.7u79。开始之前,先简单描述下类之间的关系,方便后续看类图。 集合架构 特性 Collection 接口存储一组不唯一,无序的对象 List 接口存储一组不唯一,有序(索引顺序)的对象 Set 接口存储一组唯一,无序的对
2023-10-24
Java

Java踩坑小记

Iterator迭代器Iterator在遍历时能remove但是不能往集合里添加元素问题。我们都知道如果是像List集合这样的,如果用循环遍历,访问没问题,在这期间如果删除就会报错,这个问题是因为你改变了集合的长度,但是遍历用的原来的长度的原因, 所以Iterator优秀点就出现了,它的出现让你可以在遍历时删除你想删除的元素,它用while循环遍历,它往下循环也就是while里的判定条件是Iter
2023-10-24
Java

Shuffle 算法

其中一种常见的洗牌算法是Fisher-Yates洗牌算法,我将用它来描述原理,并给出Java实现。 Fisher-Yates洗牌算法原理: 从数组中最后一个元素开始,从后往前遍历每个元素。 对于当前遍历到的元素,随机生成一个不超过当前下标的随机数(假设为randIdx)。 将当前元素与数组中下标为randIdx的元素交换位置,将当前元素放到一个随机位置。 继续遍历上一个位置的元素,重复步骤2至步
2023-10-24
数据结构与算法
#游戏
1234

搜索

Hexo Fluid
总访问量 次 总访客数 人