Stella981 Stella981
3年前
C# 多线程之List的线程安全问题
网上关于List的线程安全问题将的很少,所以自己实验了一把,发现确实是线程不安全的.所以当你在进行多线程编程中使用了共享的List集合,必须对其进行线程安全处理.List的Add方法是线程不安全的,List的源码中的Add方法,使用了每次当当前的元素达到上限,通过创建一个新的数组实例,并给长度翻倍的操作.如果单线程操作不会有问题,直接扩容,然后继续往里面
Wesley13 Wesley13
3年前
n级排列
n级排列由1,2,...,n组成的一个有序数组称为一个n级排列。例如,2431是一个四级排列,45321是一个五级排列。注:n级排列的总数是n(n1)(n2)...1n!逆序在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序逆序数一个排列中逆序的总数
Stella981 Stella981
3年前
Heapsort 和 priority queue
一、二叉堆含义及属性:堆(heap)亦被称为:优先队列(priorityqueue),是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。在队列中,调度程序反复提取队列中第一个作业并运行,因而实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解
Wesley13 Wesley13
3年前
Union Find
并查集是在各个不相交集合中查找某元素存在否,可以接近常数级查找例如,图的连通性,最近公共祖先等问题。一般用森林数组实现。一般有2个操作,查找(find)和合并(union)查找:从集合中查找元素x是否存在。合并:如果2个集合不想交则可以合并操作,一般方法是高度低的合并到高度高的。初始化每个元素都可以是一个单独的集合,然后不断引入关系来合并他
Wesley13 Wesley13
3年前
Java笔试面试题(转载+自己整理)
扑克牌打牌里面经常出现的5张牌,一个顺子带一对,给你五张牌,比如:1,2,2,2,3或者5,6,7,4,4或者2,4,3,5,5或者7,5,9,6,9,这种情况就符合一个顺子带一对,则返回true;反之比如:1,3,4,6,6或者1,5,5,3,4这种返回false,请你在不能使用任何数组原生方法,只能使用循环和赋值的情
Stella981 Stella981
3年前
JVM基础命令
介绍java虚拟机的指令功能,至少能阅读java代码生成的字节码指令含义一、概述Java虚拟机采用基于栈的架构,其指令由操作码和操作数组成。操作码:一个字节长度(0~255),意味着指令集的操作码个数不能操作256条。操作数:一条指令可以有零或者多个操作数,且操作数可以是1个或者多个字节。编译后的代码没有采用操作数