![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 93
赵萱婷
慢慢适应,坚持
展开
-
[算法沉淀记录] 分治法应用 —— 二分搜索(Binary Search)
二分搜索(Binary Search)是一种在有序数组中查找特定元素的高效算法。它每次将搜索区间减半,从而快速地缩小搜索范围。二分搜索的基本思想是:首先将待查关键字与数组中间位置的关键字比较,由于数组是有序的,所以一次比较就可以确定待查关键字是在中间位置的左边还是右边,然后只在相应的区域内继续搜索,直到找到为止,或者确定找不到为止。原创 2024-02-27 17:55:25 · 1071 阅读 · 0 评论 -
[算法沉淀记录] 排序算法 —— 堆排序
堆排序(Heap Sort)是一种基于比较的排序算法,它利用堆这种数据结构来实现排序。堆是一种特殊的完全二叉树,其中每个节点的值都必须大于或等于(最大堆)或小于或等于(最小堆)其子节点的值。堆是一个近似完全二叉树的数据结构,满足任一非叶子节点的值不小于(或不大于)其左右孩子节点的值。堆通常分为最大堆和最小堆:堆排序算法通过构建一个最大堆或最小堆,然后将堆顶元素(最大或最小值)与堆的最后一个元素交换,再将剩余的元素重新调整为最大堆或最小堆,如此反复,直到整个数组有序。堆排序是一种高效的排序算法、原创 2024-02-26 17:58:51 · 1201 阅读 · 0 评论 -
[算法沉淀记录] 排序算法 —— 选择排序
在本文档中,我们学习了如何使用选择排序算法对数组进行排序。我们首先定义了一个选择排序函数,然后使用该函数对不同类型的数组进行排序。最后,我们展示了排序后的数组。希望这个文档对你有所帮助!原创 2024-02-26 10:48:47 · 1054 阅读 · 0 评论 -
[算法沉淀记录]排序算法 —— 快速排序
在本文中,我们梳理了快速排序算法,它的时间复杂度,以及如何用c++实现它。我们还学习了如何在基本数据类型和用户定义数据类型上使用快速排序算法。原创 2024-02-26 10:40:54 · 985 阅读 · 0 评论 -
[算法沉淀记录] 排序算法 —— 冒泡排序
冒泡排序是一种简单的排序算法。它重复地遍历要排序的列表,一次比较两个元素,并交换它们的位置,如果它们不是按照升序排列的。这步遍历是重复进行的,直到没有再需要交换,也就是说该列表已经排序完成。该算法为交换排序之一。原创 2024-02-24 15:03:25 · 963 阅读 · 1 评论 -
[算法沉淀记录] 排序算法 —— 归并排序
归并排序是一种分治算法,由约翰·冯·诺伊曼在1945年发明。它的工作原理是将未排序的列表划分为n个子列表,每个子列表包含一个元素(包含一个元素的列表被认为是有序的),然后重复合并子列表以生成新的有序子列表,直到只剩下一个子列表。归并排序是一种高效的排序算法,其优缺点如下:总体而言,归并排序是一种高效的通用排序算法,特别适合需要稳定排序和大量数据的情况。然而,如果内存使用是一个关键因素,或者数据集非常小,可能需要考虑其他排序算法。归并排序是一种高效的通用排序算法,由于其稳定性和(O(n log n))的时间原创 2024-02-23 19:32:34 · 1289 阅读 · 0 评论 -
[算法沉淀记录] 排序算法 —— 希尔排序
希尔排序(Shell Sort)是一种基于插入排序的算法,由Donald Shell于1959年提出。希尔排序的基本思想是将待排序的序列划分成若干个子序列,分别进行插入排序,待整个序列中的记录基本有序时,再对全体记录进行一次直接插入排序。原创 2024-02-23 09:33:40 · 1131 阅读 · 0 评论 -
读书笔记-《The Modern C++ Challenge》- Sum of naturals
《The Modern C++ Challenge》读书笔记第一个程序。原创 2022-02-08 17:06:40 · 983 阅读 · 0 评论 -
(C++基础_STL) —— 初识STL
在日常的C++开发过程中,我们会经常使用到STL最为赋能加速开发的一个基本库,那么在有一定的C++的语言的基础上,学习如何使用STL是一件非常有益与后续有益于自己面对更加复杂的需求和日常开发赋能的,因此,本人虽然工作了有一段时日了,准备开始写一系列专栏记录自己重温STL的一些用法,并加深自己对于STL的理解和运用的过程,本系列文章主要用于自己复习和参考使用,如果您看到感兴趣了也可以跟我一并一起进一步学习和探讨。原创 2021-08-18 15:50:57 · 286 阅读 · 2 评论 -
(基础杂记) —— 2021-07-13 —— 牛客刷题错题记录
(基础杂记)2021-07-13 —— 牛客刷题错题记录错题记录第一题注意,带头结点的单向链表的判空条件为head.next == null, 带头结点的单向循环链表的判空条件是head.next==head; 然后要特别注意这个题考察的是单向循环链表的头指针。第二题第三题100表示传输速率为100MbpsBase表示通过基带传输T表示传输介质,twisted pair,双绞线。F表示光纤,fiber。C表示coaxial cable,同轴电缆。100B原创 2021-07-13 10:15:14 · 308 阅读 · 0 评论 -
(莫寒杂记) C++ STL std::map 使用值来进行查找
文章目录概要介绍find_if 函数单独函数专门处理参考文章附录概要介绍 我们都熟知 STL 中模板库的std::map可以按key查找对应的值,有些应用中可能会出现 Value 也是唯一的需求状态,举例而言,如果Value中保存的是GUID等唯一性数值,那么key-value 对应关系就从1:N 变成了 1:1。 如果想要以key查找,那么find已经足够了,如果想按value查找,那就得研究下find_if函数了。find_if 函数参考链接:std::find_iftemplate &原创 2020-12-01 11:46:38 · 1805 阅读 · 0 评论 -
[莫寒LeetCode学习] LC 寻找数组的中心索引
文章目录LC 寻找数组的中心索引声明题目描述示例1示例2说明个人思路和c++代码LC 寻找数组的中心索引声明本文大部分内容出自LeetCode官方,掺杂一部分个人学习和理解的笔记,原文出处如下:作者:力扣 (LeetCode)链接:https://leetcode-cn.com/leetbook/read/array-and-string/yf47s/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。题目描述给定一个整数类型的数组 nums原创 2020-10-09 10:01:02 · 121 阅读 · 0 评论 -
[莫寒LeetCode学习] 数组的操作
数组的操作声明本文大部分内容出自LeetCode官方,掺杂一部分个人学习和理解的笔记,原文出处如下:作者:力扣 (LeetCode)链接:https://leetcode-cn.com/leetbook/read/array-and-string/yjcir/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。学习目标对于数组而言,我们需要做到理解的是:数组是如何在内存中存储的?数组的索引是如何建立的?数组的基本操作有哪些?我们该如何理原创 2020-10-02 13:33:59 · 109 阅读 · 0 评论 -
[莫寒LeetCode学习]-集合、列表和数组
文章目录集合、列表和数组声明集合列表数组集合、列表和数组声明本文大部分内容出自LeetCode官方,掺杂一部分个人学习和理解的笔记,原文出处如下:作者:力扣 (LeetCode)链接:https://leetcode-cn.com/leetbook/read/array-and-string/ybfut/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。首先,先来思考一个问题,在你的理解中,集合、列表和数组的概念之间的差别是什么?为什么要做这样原创 2020-10-02 10:28:18 · 153 阅读 · 0 评论 -
(莫寒C++成长贴)C/C++ 获取文件大小
C++获取文件大小C++获取文件大小利用ifstream利用C函数利用Windows _stat函数参考文章C++获取文件大小利用ifstream以下操作需要包含头文件fstream 和 stringsize_t GetFileSize(const std::string& file_name){ std::ifstream in(file_name.c_str()); in...原创 2020-04-23 14:09:46 · 554 阅读 · 0 评论 -
(LeetCode刷题)Day04 寻找两个有序数组的中位数
寻找两个有序数组的中位数[Median of Two Sorted Arrays](https://leetcode-cn.com/problems/median-of-two-sorted-arrays/)题目描述解法: 递归法C++代码Golang代码Java代码Median of Two Sorted Arrays题目描述解法: 递归法为了解决这个问题,我们需要理解 “中位数的作...原创 2020-03-10 01:31:53 · 182 阅读 · 0 评论 -
(LeetCode刷题)Day03 无重复字符的最长子串
Golang 基础[3. Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/)题目解题思路提交代码**解法一、滑动窗口法**范例题解 - 4ms范例题解 - 0ms小结编写本地测试**解法二、利用Ha...原创 2020-03-06 23:12:21 · 176 阅读 · 0 评论 -
(LeetCode刷题)Day 02 Add Two Numbers 两数相加
Add Two NumbersAdd Two Numbers题目描述(中等难度)该题目的目标是:两个链表表示的数相加,这样就可以实现两个很大的数相加了,就不用考虑数据类型方面的位数限制了。方法:初等数学我们使用变量来跟踪进位,并从包含最低有效位的表头开始模拟逐位相加的过程。过程图示根据上图可知,对两数相加方法的可视化:342+465=807342+465=807342+465=...原创 2020-03-06 22:45:15 · 172 阅读 · 0 评论 -
(LeetCode刷题)Day01 Two Sum-两数之和
题目描述(简单题)Two Sum我们的目标是:给定确定数组和一个目标和,在数组中找两个数字相加等于目标和的项目,输出这两个数字的下标。解法一 双重循环本解法倾向于暴力解法,并且比较耗费空间,因为添加了一个多余的vector作为中间存储区。时间复杂度:因为是两层 for 循环,O(n2)O(n^2)O(n2)空间复杂度:O(1)O(1)O(1)C++ 解法:class Solut...原创 2020-03-06 21:49:42 · 230 阅读 · 0 评论 -
Using Objective-C achieve the stack structure.(用Objective-C实现堆栈)
Achieve stack structure by using Objective-C.原创 2015-04-23 16:34:07 · 450 阅读 · 0 评论 -
Objective-C achieve Queue using Two Stacks(用两个堆栈实现队列)
Objective-C achieve Queue using Two Stacks(用两个堆栈实现队列)原创 2015-04-26 11:03:45 · 557 阅读 · 0 评论 -
计算机图形学学习记录(四) —— X扫描线算法与区域填充算法
为方便找代码的朋友直接看代码,先把代码和运行结果贴上:OpenGL算法主要实现代码point polypoint[POINTNUM]{ 250,50,550,150,550,400,250,250,100,350,100,100,120,30 };//多边形顶点 void GlAreaFilled::PolyScanner(void){ /******计算最高点的y坐...原创 2018-04-03 10:33:27 · 16270 阅读 · 0 评论 -
Golang学习之路 - LeetCode-Go-Learning 第一题. 两数之和
Golang 基础[1. Two Sum](https://leetcode.com/problems/two-sum/)题目解法 1 暴力解法解题思路解法 2 查询差值序号解题思路编写测试程序鸣谢: LeetCode-In-Go1. Two Sum题目Given an array of integers, return indices of the two numbers such th...原创 2019-08-19 09:44:39 · 249 阅读 · 0 评论 -
Golang学习之路 - LeetCode-Go-Learning 第11题. 盛最多水的容器
Golang 基础个人探索过程学习别人的方法[11. Container With Most Water](https://leetcode.com/problems/container-with-most-water/)题目解题思路解题代码方案1方案1的单元测试方案2鸣谢: LeetCode-In-Go个人探索过程// 这个版本没有考虑到数字的重复问题func maxArea(heig...原创 2019-08-21 13:39:58 · 142 阅读 · 0 评论 -
Golang学习之路 - LeetCode-Go-Learning 第13题. 罗马数字转整数
Golang 基础[13. Roman to Integer](https://leetcode.com/problems/roman-to-integer/)题目解题思路解题代码方案1方案2单元测试总结鸣谢: LeetCode-In-Go13. Roman to Integer题目Roman numerals are represented by seven different symb...原创 2019-08-21 15:11:17 · 255 阅读 · 0 评论 -
Golang - 面试知识点小结
Golang基础Go 面试题问题集合答案解析鸣谢Go 面试题问题集合此处先展示题目,后面会有题目解析。go 语言中的关键字有哪些?提示一共有25个。go 语言中类型是如何定义的?go 语言全局变量的定义方式是怎么样的?go 语言中的结构体是如何定义的?go 语言通过指针访问成员变量的方式有几种?go 语言格式化输出的方式有哪些?go 语言中的接口作用是什么?一个接口如果实现...原创 2019-08-23 12:03:27 · 2137 阅读 · 4 评论 -
数据结构通用双向循环链表实现
数据结构通用双向循环链表实现代码块数据结构通用双向循环链表实现在学习操作系统的过程中,我们为了简化代码,提高数据结构的效率,我们会需要去在C语言中运用一些面向对象的方法,比如这里所要说明的通用双向循环链表。他的特点有 - 一次定义,无限使用 - 不限制数据类型 - 优化简介 - 可读性强代码块list.h//// list.h// GeneralDoubleLoopList//原创 2015-03-31 20:01:55 · 569 阅读 · 0 评论