代码1 public class TopK_Partition { public static List<Integer> topK(int[] a, int k){ List<Integer> res = new LinkedList<>(); int begin = 0, end = a.length-1; int index = partition(a, begin, end); while (inde
算法课程期末复习总结 八大排序算法复杂度比较求解递归式的复杂度Max Sum(最大子段和)int len = arr.length;int[] dp = new int[len + 1];dp[0] = 0;for(int i = 1; i <= len; i ++) { dp[i] = Math.max(dp[i-1] + arr[i], arr[i]);}int res = Integer.MIN_VALUE;for(int i = 1; i < dp.length; i ++) {
软件体系结构期末复习总结 什么是软件体系结构?软件体系结构是具有一定形式的结构化元素,抽象的讲,软件体系结构包括构成系统的设计元素的描述,设计元素的交互,设计元素组合的模式,以及在这些模式中的约束。具体的讲,体系结构 = 组件+连接件+约束组件:具有某种功能的可重用的软件模块单元,表示了系统中主要的计算单元和数据存储。连接件:表示了组件之间的交互,简单的连接件有:管道,过程调用,事件广播等,复杂的连接件有:客户-服务器通信协议,数据库和应用之间SQL连接等。约束:表示了组件和连接件的拓扑逻辑和约束。七种经典的软件体系结
Java多态(详解重载和重写,静态分派和动态分派) 文章目录Java中的多态继承向上转型向下转型多态(重载是静态分派 重写是动态分派)重载静态分派重写动态分派总结参考链接Java中的多态要了解多态,我们先来看一下继承。继承public class inheritExmple { public static void main(String[] args) { //向上转型(子类向父类去转型,隐士转换) Person person = new Child(); person.sleep()
静态代码块 构造代码块 构造函数 深入分析 文章目录静态代码块 构造代码块 构造函数 的执行顺序概念静态代码块构造代码块构造函数普通代码块执行顺序简单例子解释父子类之间的加载顺序(重要)解释参考链接静态代码块 构造代码块 构造函数 的执行顺序概念静态代码块//在java类中(方法中不能存在静态代码块)使用static关键字和{}声明的代码块public class CodeBlock { static { System.out.println("静态代码块"); }}执行时机静态代码块在类被加载的时候就
GC与内存分配面试知识总结 GC需要完成三件事:哪些内存需要回收什么时候回收如何回收对象已死吗引用计数法这个算法是这样判断对象是否存活的:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。它无法解决对象之间循环引用的问题,同时虚拟机也不是通过引用计数法来判断对象是否存活的简单示例: 对象objA和objB都有属性instance,赋值令objA.instance = objB 及 objB.instance = objA,
JVM运行时数据区 运行时数据区概念: Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的区域。这些区域都有各自的用途,以及创建时间和销毁时间。可按照由线程共享或线程隔离来将Java虚拟机运行时数据区划分如下:线程私有的: 程序计数器,虚拟机栈,本地方法栈线程共享的: 堆,方法区程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,它可以看做当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来获取下一条需要执行的字节码
AOE网中求解关键路径(Critical Path) 首先推荐有个b站视频,讲关键路径讲的非常好,20min可搞懂:https://www.bilibili.com/video/BV1PW41187vc?from=search&seid=40093726432206649一、概念AOE网: 用顶点表示事件,用边表示活动,权表示活动持续的时间。AOE网可回答的问题有:完成整个工程至少需要多长时间?哪些活动是影响工程进度的关键?活动的最早开始时间和最晚开始时间?活动的总浮动和自由浮动时间。找到图的关键路径属于项目管理的范围,应由项目经理严格
设计模式——单例模式(java:一步步优化至最优写法) 目录一、概念二、分类三、代码实现饿汉式:在系统加载时就创建类的单例。方法一:静态常量法:将唯一实例obj设置成静态常量方法二:静态代码块:将类的实例化放在静态代码块中,与上述的静态常量一致,都是在类装载时创建单例,因此优缺点一致方法三:静态内部类 : Singleton2在加载的时候不会被实例化,而是在需要实例化时(调用getInstance()),才会装载静态内部类,从而完成Singleton2的实例化。多线程下可以实现单例懒汉式:在需要单例的时候才去创建方法一: 只判
面试手撕 (1):两个栈实现队列+两个队列实现栈 最近在找实习,打算开一个名叫‘面试手撕算法’的专栏,里面包含一些面试常见的算法题,而一般面试中的代码题会比笔试中的题简单一点,考的很基础的概念。但是往往有一些小细节被忽略,而使我们无法在短时间成功写出代码。在这里,我会将我遇到的面试题和在一些帖子上常讨论的题进行整理,希望能帮助大家,一起学习。昨天美团一面,面试官考了:用双栈实现一个队列,并且实现push(),pop()方法。两个栈实现...
XP Professional开机就要激活,否则无法登录桌面 上个月有门课程实验需要XP系统,所有参考这篇博客:VMware Workstation:安装windows xp系统在虚拟机中装了xp专业版,当时成功安装并激活了,但是一个月后出现了这样的问题:(这里截取了该文章下的一条评论,该读者与我出现的问题一样)网上有很多方法,本文参考这篇文章XP Professional开机就要激活,否则无法登录桌面.对其中重要步骤进行配图1.开机按F8 进入安全模式(...
String StringBuffer StringBuilder String StringBuffer StringBuilderString字符串常量StringBuffer线程安全的可变字符序列StringBuilder非线程安全的可变字符序列1. 可变与不可变性String类中使用final关键字修饰字符数组来保存字符串,private final char value[](java9之后用byte数组存储字符串),所以它是不可变对象。即每...
求包含n个整数的数组A的第i小的数 题目:求包含n个整数的数组A的第i小的数。解法一:排序将数组A从小到大排序,之后第i个数即为所求。时间复杂度为O(n²)解法二:维护一个长度为i的有序数组B[i](顺序为从小到大),遍历A[j],每遍历到一个元素将其与B中的最大元素(即B中最后一个元素)作比较,若比B中最大元素大,则继续遍历。否则挤掉最大元素并插入到B中的合适位置,有点类似直插法。 比如i...
两数和问题(在数组中找出两数和为给定整数的两元素) 题目:输入包含n个整数是数组A的整数x,求出满足A[i]+A[j]=x的i和j,如果没有这样的元素和,则返回-1和-1。我的分析如下:此题需要注意的是:数组中可能有重复元素,满足条件的解不止一组。例如,给定数组A[1,3,2,2]和x=4,则满足条件的解为(0,1):1+3=4 和(2,3):2+2=4。解法一:暴力解法遍历每个元素A[i],并查找是否存在一个值...
微机原理实验报告 目录实验一 汇编语言编程实验一、 实验目的二、 实验所用仪器三、 实验内容及基本原理四、 实验数据记录五、 实验结果分析及回答问题(或测试环境及测试结果)实验二 数码转换实验一、 实验目的二、 实验所用仪器三、 实验内容及基本原理四、 实验数据记录五、 实验结果分析及回答问题实验三 基本 IO 口扩展实验一、 实验目的二、 实验所用仪器...
函数绘图语言详细版 !!!说明,本文源码参考github:https://github.com/TaronLedgerS/MyCompiler,其中本人对于语法分析器改动了一小部分,另外由于作者水平有限,学不会windows界面编程,故语义分析和绘图模块是用python实现的,由于c++和python都是面向对象语言,故将词法分析,语法分析模块转成等价python语言应该不会很难。作者认为,词法分析和语法分析这两部分...