- 博客(5)
- 收藏
- 关注
原创 堆和栈的特点区别以及优缺点
堆是动态分配的内存,由程序员手动分配和释放,内存的分配和释放顺序并不一定按照先进先出的原则,所以在堆上分配内存的速度较慢。而栈是由操作系统自动管理的内存,分配和释放内存的顺序是按照先进后出的原则,速度较快。栈的主要优点是速度快,内存管理由操作系统自动完成,不容易出现内存泄漏或者内存溢出等问题,但是栈的大小是静态的,无法动态调整,所以栈上分配的内存空间比较有限,如果程序需要大量内存空间,就需要使用堆上的内存。总体来说,堆和栈各有优缺点,程序员需要根据具体的需求和情况,选择合适的内存管理方式。
2023-06-08 09:50:43
1780
原创 哈希冲突的解决办法
接近 1 时,就可能会有大量的散列冲突,导致大量的探测、再散列等,性能会下降很多。所谓二次探测,跟线性探测很像,线性探测每次探测的步长是 1,那它探测的下标序列就是 hash(key)+0,hash(key)+1,hash(key)+2……而且,因为链表中的结点是零散分布在内存中的,不是连续的,所以对 CPU 缓存是不友好的,这方面对于执行效率也有一定的影响。2.查找的时候也是一样的,如果经过散列函数计算的位置是空闲的就是不存在,如果有元素,比较元素是否相等,然后继续往后遍历,如果到空位置都不相等就是无。
2023-06-08 09:48:32
945
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人