TechBlog
首页分类标签搜索关于
← 返回标签列表
加载中...

© 2025 TechBlog. All rights reserved.

#标签

共 798 篇文章
C核心特性精讲从C语言痛点出发,掌握现代C编程精髓超详细

C核心特性精讲从C语言痛点出发,掌握现代C编程精髓超详细

本文深入探讨了从C语言转向C++的必要性,重点分析了C语言在大型项目管理中的核心痛点,并展示了C++如何通过命名空间(namespace)机制优雅解决这些问题。文章首先指出C语言在命名冲突、指针管理、函数设计等方面的不足,然后详细讲解了C++命名空间的多种应用方式,包括基本命名空间、嵌套命名空间、匿名命名空间和命名空间别名,并通过丰富的代码示例演示了它们在工程实践中的应用。命名空间为C++提供了模块化组织能力,有效解决了标识符冲突问题,是构建大型软件系统的重要基础特性。

时间:12/15/2025

一天一个计算机知识编程百度向上取整

一天一个计算机知识编程百度向上取整

本文系统介绍了数学和编程中的向上取整概念。在数学部分,通过表格对比了不同数值的向上取整、向下取整和四舍五入结果,特别强调负数处理的特殊性。编程实现部分详细说明了Python、C/C++、Java等语言使用ceil函数的方法,并提供了整数运算的优化技巧公式。最后指出了常见陷阱,包括返回值类型转换和负数处理注意事项。文章配有生动的图示和代码示例,适合编程学习者快速掌握这一基础但重要的数学运算实现。

时间:12/14/2025

插入排序与冒泡排序

插入排序与冒泡排序

本文介绍了插入排序和冒泡排序及其实现

时间:12/14/2025

链表与LinkedList

链表与LinkedList

在Java集合框架中,迭代器(Iterator)是用于遍历集合元素的统一接口,它提供了一种不依赖集合底层结构的遍历方式,核心作用是“解耦集合与遍历逻辑”。到这里我的分享就先结束了~,希望对你有帮助我是dylan下次见~无限进步。

时间:12/14/2025

数据结构排序

数据结构排序

本文系统介绍了常见排序算法及其实现。主要内容包括:1)排序基本概念(稳定性、内外排序);2)四大类排序算法(插入、选择、交换、归并)的具体实现,包含直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序和归并排序的C语言代码;3)各算法的时间/空间复杂度及稳定性分析。实验数据展示了VS2026下处理10万数据时各算法的性能表现,其中快速排序和归并排序表现最优。文章详细阐述了每种算法的核心思想、特性及优化方法,为排序算法的学习和应用提供了全面参考。

时间:12/13/2025

C-5模板初阶

C-5模板初阶

本文介绍了C++中的函数模板和类模板。函数模板解决了函数重载代码复用率低和维护性差的问题,通过模板参数让编译器自动生成特定类型版本。函数模板分为隐式实例化(编译器自动推导类型)和显式实例化(手动指定类型)。类模板与函数模板类似,但必须显式实例化,实例化结果才是真正的类。文中通过交换函数和栈的实现示例,展示了模板的定义、使用和实例化方法,并说明了模板参数匹配规则(优先匹配非模板函数,若模板匹配更好则选择模板)。模板技术有效提高了代码的复用性和可维护性。

时间:12/13/2025

算法基础-数据结构

算法基础-数据结构

本文介绍了单调栈的概念及其应用。单调栈是一种具有单调性(递增或递减)的栈结构,主要用于解决四种问题:寻找元素左右侧最近且比它大/小的元素。通过示例代码演示了如何实现单调递增栈和递减栈,并详细讲解了解决这四类问题的具体方法:左侧问题正序遍历,右侧问题逆序遍历;找更大元素用递减栈,找更小元素用递增栈。最后以洛谷P5788模板题为例,展示了如何用单调递减栈从右向左遍历数组,快速找到每个元素右侧第一个更大元素的下标。

时间:12/13/2025

二叉树深度探索遍历性质与经典算法

二叉树深度探索遍历性质与经典算法

每一种遍历方式都有其特点,根据不同的题型选择合适的遍历方式往往可以达到更好的效果遍历方式访问顺序关键特点应用数据结构前序遍历根->左->右先访问根。第一个节点是整棵树的根。复制二叉树、反转子树栈(递归/迭代)中序遍历左->根->右在中间访问根。对BST会得到有序序列。二叉搜索树的中序遍历得到升序序列栈(递归/迭代)后序遍历左->右->根最后访问根。最后一个节点是整棵树的根。释放二叉树、计算节点数/高度栈(递归/迭代)层序遍历。

时间:12/13/2025

数据结构与算法11种排序算法全面对比分析

数据结构与算法11种排序算法全面对比分析

本文系统分析了11种常见排序算法,分为比较排序(冒泡、选择、插入、快速、归并、堆排序等)和非比较排序(计数、桶、基数排序)两大类。从算法原理、时间复杂度、空间复杂度、稳定性和适用场景等方面进行对比,指出小规模数据适用简单排序(如插入排序),中等规模推荐快速排序,大规模数据可选归并或堆排序。特殊场景下,数据范围小的整数适用计数排序,内存受限环境适合堆排序,需要稳定性时可选归并排序。文章通过综合对比表直观展示各算法特性,为实际应用中的算法选择提供了明确指导。

时间:12/13/2025

快速排序的简单介绍

快速排序的简单介绍

这三种方法的最终结果虽然一样,但中途产生的结果却不一定一样.选择题考到时需要一个一个方法尝试.时间复杂度:最坏情况为O(N^2),平均情况下是O(NlogN);空间复杂度:最坏情况下为O(N),平均情况下是O(logN);不稳定排序。

时间:12/13/2025

冒泡选择插入排序简介C

冒泡选择插入排序简介C

冒泡排序通过重复遍历数组,比较相邻元素并交换位置,将较大元素逐渐“冒泡”到数组末尾。插入排序将数组分为已排序和未排序两部分,逐个将未排序元素插入到已排序部分的正确位置。选择排序每次遍历未排序部分,找到最小元素并交换到已排序部分的末尾。

时间:12/13/2025

数据结构考研408-B树收官插入与删除的平衡艺术分裂合并与借位

数据结构考研408-B树收官插入与删除的平衡艺术分裂合并与借位

【数据结构】考研408|B树收官:插入与删除的平衡艺术——分裂、合并与借位详细介绍B树的基本操作——插入与删除的重要知识点……

时间:12/13/2025

从0开始学算法第十四天数组与搜索

从0开始学算法第十四天数组与搜索

昨天学习了Rabin-Karp算法,今天让我们来学习一下数组与搜索的相关知识吧。

时间:12/12/2025

码道初阶Leetcode面试题02.04分割链表中等难度

码道初阶Leetcode面试题02.04分割链表中等难度

本文介绍了一种稳定分区链表的算法。给定单链表和目标值x,要求将小于x的节点排在前面且保持相对顺序。核心思路是使用四个指针维护两个区间(小于x和大于等于x),通过尾插法分别构建两个子链表,最后拼接并处理边界情况。关键点包括:1)尾插法保持稳定性;2)拼接后必须断开原链表的残留指针;3)处理全小或全大的边界情况。该算法时间复杂度O(n),空间复杂度O(1),适用于多种链表重排问题。建议在遍历时先断开当前节点以避免指针污染。

时间:12/12/2025

list的实现和使用

list的实现和使用

push_backpush_front:O(1)insert(在已知位置):O(1)erase(给定迭代器):O(1)find(基于值):O(n)splice:O(1)(只是改变指针,不拷贝)sort()list::sort):O(nlogn)(归并排序):O(n)注意:虽然对单个已知位置的插入/删除为O(1),但查找位置仍然可能需要O(n)。

时间:12/12/2025

数据结构考研408-B树探秘从查找操作到树高性能分析

数据结构考研408-B树探秘从查找操作到树高性能分析

【数据结构】考研408|B树探秘:从查找操作到树高性能分析详细介绍B树的查找操作以及高度性能分析的重要知识点……

时间:12/12/2025

东方博宜OJ-2190树的重心-链式前向星

东方博宜OJ-2190树的重心-链式前向星

树的重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中结点数的最大值最小,那么这个结点被称为树的重心。

时间:12/11/2025

力扣hot100路径总和III

力扣hot100路径总和III

可以用递归的方式向下遍历这颗树,定义一个s,表示目前路径的和,每走一个节点就把节点值加入s,然后判断哈希表中是否存在s-targetSum,如果存在说明找到了和为targetSum的路径,不存在就把更新哈希表。本题和“和为k的子数组有异曲同工之妙”,思路也相似。可以用一个哈希表去存储每条路径的和,两条路径和只差即为中间路径的和。需要注意的是,左右叶子节点递归完之后要回溯哈希表,以免对其他分支的技术产生问题。

时间:12/11/2025

数据结构有向图

数据结构有向图

数据结构:有向图

时间:12/11/2025

Java算法题移除数组中的重复项

Java算法题移除数组中的重复项

该思路时间复杂度O(n)(仅一次遍历),空间复杂度O(1),完全满足题目要求,且逻辑比“最多保留两次”简化了核心判断。解释:函数应返回新长度2,且原数组前两个元素被修改为。解释:函数应返回新长度5,且原数组前五个元素被修改为。,无需考虑数组中超出新长度的元素。删除重复出现的元素,使得每个元素。,返回删除后数组的新长度。

时间:12/11/2025

数据结构12堆排序

数据结构12堆排序

堆排序是一种基于堆数据结构的选择排序算法,通过构建大堆(升序)或小堆(降序)实现排序。算法分为两步:首先通过向下调整算法构建初始堆(时间复杂度O(N)),然后通过反复交换堆顶与末尾元素并调整堆完成排序(时间复杂度O(N*logN))。堆排序空间复杂度为O(1),但不稳定。实现时需注意升序建大堆、降序建小堆的关键区别,并通过调整父子节点关系维持堆性质。典型实现包括交换函数、向下调整函数和主排序函数,通过比较和交换操作逐步完成排序。

时间:12/09/2025

c多线程基于锁的数据结构

c多线程基于锁的数据结构

c++并发数据结构

时间:12/09/2025

数据结构布隆过滤-

数据结构布隆过滤-

布隆过滤器是由BurtonHowardBloom在1970年提出的紧凑型概率型数据结构,核心目标是解决“海量数据的存在性快速判断”问题,本质是哈希函数+位图(BitSet)的组合设计,弥补了传统哈希表空间利用率低、纯位图仅支持整数存储的缺陷。核心价值:以极小的空间开销和O(1)的时间复杂度,实现海量元素的存在性判断(无漏判,有可控误判);适用场景边界:仅关注“存在性”,不关注元素的具体内容获取(无法从过滤器中提取元素本身)。

时间:12/09/2025

数据结构初阶入门之顺序表

数据结构初阶入门之顺序表

本文介绍了数据结构中顺序表的相关知识,重点讲解了动态顺序表的实现与应用。主要内容包括:顺序表的基本概念:线性表的一种实现方式,分为静态和动态两种类型动态顺序表的实现:使用结构体管理数组指针、大小和容量,提供扩容机制核心操作函数:包括初始化、检查扩容、尾插/头插、尾删/头删等操作的实现原理项目结构设计:采用模块化编程思想,将声明、实现和测试分离到不同文件动态顺序表相比静态顺序表具有更好的灵活性,能根据需要动态调整大小,避免了空间浪费或不足的问题。文章通过代码示例详细展示了各函数的实现逻辑,包括扩容策

时间:12/09/2025

上一页
12345...34
下一页第 2 / 34 页