摘要: 数组,arrayList和List (1)数组在C#中是最早出现的。它在内存中是连续的存储的,所以索引速度很快,而且赋值与修改元素也很简单。可以利用偏移地址访问元素,时间复杂度为O(1);可以用折半查找法查找元素,效率高。 数组也有很多缺点。数组分配在一块连续的数据空间上,因此分配空间时必须确定大小 阅读全文
posted @ 2019-04-03 23:15 mc宇少 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 解决哈希冲突的方法 (1) 开放定址法 当冲突发生时使用某种探查技术在散列表中形成一个探查序列。沿此序列逐个单元的查找,直到找到给定的关键字,或者碰到一个开放的地址为止。 线性探测法:挨个向后找。 线性补偿探测法:将步长从1改为q,要求q与m互质。J=(j+q)%m 随机探测法:步长改为随机数。 双 阅读全文
posted @ 2019-04-03 23:00 mc宇少 阅读(282) 评论(0) 推荐(0) 编辑
摘要: Hashtable internal const Int32 HashPrime = 101;//一个固定的素数 private const Int32 InitialSize = 3;//哈希表的默认容量 private struct bucket { public Object key;//键 阅读全文
posted @ 2019-04-03 23:00 mc宇少 阅读(300) 评论(0) 推荐(0) 编辑
摘要: ConcurrentDictionary ConcurrentDictionary一大特点是线程安全,在没有ConcurrentDictionary前 在多线程下用Dictionary,不管读写都要加个锁,不但麻烦,性能上也不是很好 微软得出的结果是默认的锁的数量是CPU核的个数,这个线程池默认的线 阅读全文
posted @ 2019-04-03 13:43 mc宇少 阅读(5840) 评论(0) 推荐(0) 编辑