
数据结构与算法
数据结构与算法
大数据架构师Pony
不勤于始,将悔于终。
展开
-
开源算法列表
原创 2021-06-28 14:51:26 · 191 阅读 · 0 评论 -
快速排序、归并排序、冒泡排序、选择排序(复杂度分别是多少?)
时间复杂度我们使用大O表示法进行表示,(1)冒泡排序的时间复杂度:1.比较相邻的元素,如果第一个比第二个大(升序),就交换他们两个2.对每一对相邻的元素做同样的工作,从开始到结尾的最后一对这步做完后,最后的元素会是最大的数3.针对所有的元素重复以上的步骤,除了最后一个4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较5.稳定性:数值相同的元素在排序中不交换位置为稳定反之为不稳定6.最优复杂度:O(n) 最坏复杂度:O(n^2) 稳定性:稳定...原创 2020-05-25 09:23:33 · 6320 阅读 · 2 评论 -
数组和链表的区别
数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。同样的道理,如果想删除一个元素,同样需要移动大量元素去填掉被移动的元素。如果应用需要快速访问数据,很少或不插入和删除元素,就应该用数组。链表恰好相反,链表中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到一起。比如:上一个元素有个指针指到下一个元素,以此类推,直到最后一个元素。如果要访问链表中一个原创 2020-05-25 09:09:16 · 319 阅读 · 0 评论 -
HashMap 时间复杂度?
HashMap 时间复杂度?hashmap时间复杂度,理想情况下HashMap的时间复杂度为O(1)因为对于内存来说,访问任何地址的时间是一样的,即时间极短,相当于可以同时访问到所有地址。而在时间复杂度为O(1)时,需要很大的内存空间,所以必须要对内存和时间进行取舍。(3)问题扩展:如何在空间 和 时间上做出最有选择hashmap在初始化的时候有俩值,初始大小和负载因子,默认是16和0.75大小不用解释,负载因子就是一个小数,扩容的时候用的,在put的时候,hashmap就检查一下.原创 2020-05-24 22:58:27 · 8109 阅读 · 0 评论 -
常见十大排序算法(含原理动画图+代码)
原理动态图:原理解析:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。...原创 2020-11-09 22:26:16 · 772 阅读 · 0 评论