面试高频
文章平均质量分 92
猿六凯
这个作者很懒,什么都没留下…
展开
-
什么是跳表
在有序序列中查找一个元素,使用二分法,时间复杂度是 O(logn)。如果数据是已链表的形式的存储的,链表不能通过索引获取元素,二分法就不能用了。不过可以使用跳表进行快速查找。跳表是有序链表与二分法的结合。二分法查找依赖于数组的有序与随机访问,只能在数组中实现。当数据存储在链表中的时候,只需要对链表进行改造,就可以实现类似于二分的查找算法,这种改造后的链表,叫做跳表(Skip List)。假设有一个有序链表,我们需要查找某个节点,需要逐个的遍历链表。时间复杂度是 O(n)。例如下面的链表中查找 15原创 2021-01-06 21:55:57 · 980 阅读 · 0 评论 -
面试-----归并排序看这一篇就够了
面试-----归并排序看这一篇就够了归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序是一种稳定的排序方法。说人话我们有一个待排序的数组,长度为n。如果n大于1,就将它平均分成左右两部分。然后我们再看分开后的两部分数组,如果元素个数大于1,就再次均分成两部分。原创 2020-11-05 21:10:24 · 297 阅读 · 0 评论 -
面试-----快速排序看这一篇就够了
面试-----快速排序看这一篇就够了快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快排的思想是分治我们有一个待排序的数组,长度为n。选定一个基准,将数组分成左右两部分,左边的数小于基准,右边的数大于基准。然后我们分别看原创 2020-11-05 17:59:56 · 326 阅读 · 0 评论