- 博客(2)
- 收藏
- 关注
原创 双端队列详解+C语言实现基本操作
双端队列的定义:可以在两端做插入和删除操作的队列就叫做双端队列 一般来说,双端队列用循环数组来实现。 push 将元素插入表头 front- - pop 删除头部元素 front++ inject 将元素插入到表尾 rear++ eject 删除尾部元素 rear- - 我们初始化时,rear=front=0; 我们在实现双端队列是时候需要注意以下几点: 1.front指向第一个元素的下标(初始化为0) 2.rear指向最后一个元素的下标的下一个位置(初始化为0) 对于每一种操作: Push:先把front
2020-09-29 17:52:37 2246 1
原创 【leetcode】148.链表归并排序C语言实现O(n log n) 时间复杂度和常数级空间复杂度
题目出处 题目要求:在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 以下评论来自leetcode @Allen个人感觉受益匪浅,本文在此思路上用C语言实现了对链表的归并排序,并对一些细节做出了补充说明。 bottom-to-up 的归并思路是这样的:先两个两个的 merge,完成一趟后,再 4 个4个的 merge,直到结束。举个简单的例子:[4,3,1,7,8,9,2,11,5,6]. step=1: (3->4)->(1->7)->(8->9
2020-09-19 16:24:16 363
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人