10.排序算法: 快速排序 排序算法: 快速排序在计算机科学的璀璨星空中,排序算法是其中最亮眼的星辰之一。它们是编程世界的基石,也是面试官钟爱的考点。在众多排序算法中,快速排序(Quicksort)以其卓越的平均性能和优雅的“分而治之”思想,脱颖而出,成为工业界应用最广泛的排序算法之一。 本文将带你深入探索快速排序的奥秘,不仅会详细阐述其工作原理,还将使用 Go 语言提供两种实现方式:经典的递归版本和挑战性的非递归版本。 一 2025-07-07 #原创 #数据结构 #算法
08.算法——动态规划 算法专题:动态规划 (Dynamic Programming)1. 引言在计算机科学和数学中,动态规划(Dynamic Programming,简称 DP)是一种通过把原问题分解为相对简单的子问题的方式来求解复杂问题的方法。它通常用于优化问题,即在给定约束条件下,找到最大或最小的某个值。 动态规划的核心思想是,如果一个问题可以被分解成相互重叠的子问题,并且这些子问题的最优解可以组合成原问题的最优解 2025-06-29 #原创 #数据结构 #算法
07.算法——贪心算法 算法专题:贪心算法 (Greedy Algorithm) 相关数据结构实现用go语言实现 相关代码做题合集:https://github.com/longpi1/algorithm-pattern 1. 引言在计算机科学中,贪心算法(Greedy Algorithm)是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法策略。它不从整体最优上加 2025-06-20 #原创 #数据结构 #算法
06.算法——回溯 算法专题:回溯(Backtracking) 相关数据结构实现用go语言实现 相关代码做题合集:https://github.com/longpi1/algorithm-pattern 1. 引言在计算机科学中,回溯(Backtracking)是一种常用的算法范式,用于在所有(或部分)可能的解中搜索问题的解。它是一种通过尝试所有可能路径来找到解决方案的系统化方法。当遇到死路或者发现当前路径不可能通 2025-06-18 #原创 #数据结构 #算法
05.数据结构——二叉树 数据结构—二叉树 相关数据结构实现用go语言实现 相关代码做题合集:https://github.com/longpi1/algorithm-pattern 在计算机科学中,树形结构是一种非常重要且直观的数据组织方式,它模拟了自然界中许多分层关系。而二叉树(Binary Tree)是其中最基础、最常用的一种,因其结构简单却能衍生出众多高效的算法和数据结构(如二叉搜索树、堆等),在数据存储、检索、 2025-06-14 #原创 #数据结构 #算法
04.数据结构—哈希表与字符串 数据结构—哈希表与字符串 相关数据结构实现用go语言实现 相关代码做题合集:https://github.com/longpi1/algorithm-pattern 一、什么是哈希表?(Hash Table / Hash Map / Dictionary)哈希表是一种实现关联数组(associative array)抽象数据类型的数据结构。它能够将键(Key)映射到值(Val 2025-06-14 #原创 #数据结构 #算法
03.数据结构——链表 数据结构—链表 相关数据结构实现用go语言实现 相关代码做题合集:https://github.com/longpi1/algorithm-pattern 链表(Linked List)是一种常见的数据结构,它由一系列节点(Node)组成,每个节点包含数据和指向下一个节点的指针(在双向链表中还包括指向前一个节点的指针)。下面我将详细介绍链表的特点、优缺点,并提供 Go 语言实现的示例。 一、链 2025-05-31 #原创 #数据结构 #算法
02.数据结构——栈与队列 数据结构—栈与队列 相关数据结构实现用go语言实现 相关代码做题合集:https://github.com/longpi1/algorithm-pattern go 通过切片模拟栈和队列 栈栈是一种后进先出(LIFO, Last-In-First-Out)的数据结构。Go 没有内置的栈类型,但可以使用切片或链表实现栈。 定义和特点 栈支持两种主要操作: Push(入栈):将元素添加到栈顶。 Po 2025-05-30 #原创 #数据结构 #算法
01.数据结构——数组 数据结构—数组 相关数据结构实现用go语言实现 相关代码做题合集:https://github.com/longpi1/algorithm-pattern 数组(Array)在 Go 中,数组是固定长度的连续内存块,长度在定义时确定且不可变。数组的使用场景较少,因为切片(slice)更加灵活,通常更常用。所以在做算法题时一般用切片进行编写 定义和特点 数组的长度是类型的一部分,例如 [3]int 2025-05-26 #原创 #数据结构 #算法
00.算法复杂度分析 数据结构—数组 相关数据结构实现用go语言实现 相关代码做题合集:https://github.com/longpi1/algorithm-pattern 数组(Array)在 Go 中,数组是固定长度的连续内存块,长度在定义时确定且不可变。数组的使用场景较少,因为切片(slice)更加灵活,通常更常用。所以在做算法题时一般用切片进行编写 定义和特点 数组的长度是类型的一部分,例如 [3]int 2025-05-26 #原创 #数据结构 #算法