
数据结构和算法
文章平均质量分 90
学习数据结构和算法的技术分享
逍遥Sean
计算机专业毕业并拥有超过3年工作经验的前后端技术探险家,擅长多个领域包括Web网站开发、游戏程序设计、WPF微软桌面程序、微信小程序等等。
在我的博客中,我致力于分享深入的技术见解和实际经验,帮助程序员解决各种挑战和提升技能。你将在这里找到关于如何构建高效Web服务的实用技巧,游戏开发中的优化策略以及数据结构与算法在应用程序的最佳实践。
我希望通过分享我的知识和经验,为广大程序员社区贡献一些实用的见解,让大家在技术的路上少走弯路,更快地实现自己的开发目标。
无论你对哪个领域感兴趣,我都希望我的博客能成为你解决问题的有力工具。请随时浏览我的最新文章,欢迎留言讨论,共同探索技术的无限可能!
展开
-
SQL - 计算分数排名(Rank)实现详解(LeetCode178)
通过使用 SQL 的窗口函数,我们可以轻松地计算分数排名,并且处理分数相同的情况。该方法不仅简洁高效,还能避免因排名空缺导致的错误。这个技术在比赛成绩、考试排名等场景中都非常有用。希望本博客能够帮助你理解如何在 SQL 中处理排名计算。如果你在实际项目中遇到类似问题,记得使用来解决。原创 2024-12-31 10:28:59 · 1417 阅读 · 0 评论 -
SQL - 查询第N高的薪水SQL 实现详解(LeetCode177)
查询第n方法 1:使用LIMIT和OFFSET,适用于支持窗口函数的数据库,简单直观。方法 2:使用窗口函数,适用于支持窗口函数的数据库,效率高且灵活。方法 3:使用子查询和LIMIT,适用于不支持窗口函数的数据库,适合简单场景。选择哪种方法取决于你所使用的数据库和具体的应用场景。希望本文能够帮助你在 SQL 面试和开发中更加得心应手!原创 2024-12-31 10:25:34 · 986 阅读 · 0 评论 -
SQL - 查询第二高的薪水SQL 实现详解(LeetCode176)
通过以上两种方法,我们能够高效地查询出Employee表中的第二高薪水。方法 1使用MAX函数在一些数据库系统中表现更加优雅,尤其是当我们只需要通过某个特定的值来比较时。方法 2使用DISTINCT和LIMIT是一种常见的技巧,尤其适用于我们需要处理重复数据并且可以使用排序时。两种方法的选择可以根据具体的应用场景和数据库类型来决定。希望这篇文章能够帮助你理解如何在 SQL 中处理“第二高薪水”这一问题,并能帮助你在实际开发中应用这些技巧。如果你有更好的解法,或者有任何疑问,欢迎在评论区留言!原创 2024-12-31 09:41:17 · 788 阅读 · 0 评论 -
C#实战 - C#实现冒泡算法
当我们谈论排序算法中的经典之作时,冒泡排序(Bubble Sort)无疑是其中之一。它简单而又直观,适合初学者理解排序算法的基本概念。在本文中,我们将深入探讨冒泡排序的工作原理、实现步骤以及其在 C# 中的具体实现。@[TOC](C#实现冒泡算法)### 冒泡排序简介冒泡排序是一种基础的比较排序算法,它重复地遍历要排序的列表,一次比较两个元素,如果它们的顺序错误就将它们交换位置,直到没有需要交换的元素,排序完成。### 工作原理冒泡排序的过程可以描述如下:1. 从列表的第一个元素开始原创 2024-07-31 15:52:28 · 1081 阅读 · 0 评论 -
JavaScript实战 - JavaScript实现树的深度遍历(DFS)
在实现树的深度遍历之前,我们首先需要定义树节点的结构。每个树节点包含一个值和一个子节点数组。本文介绍了JavaScript实现树的深度优先遍历算法的基本原理和实现方法。通过定义树节点类和编写深度优先遍历函数,我们可以方便地处理树形结构的数据,并应用于各种实际场景中。希望本文能帮助读者理解深度优先遍历的思想及其在JavaScript中的实现方式,为进一步深入学习和应用树形数据结构提供基础知识和参考。原创 2024-07-30 09:01:27 · 682 阅读 · 0 评论 -
数据结构与算法-线性表(下)链式存储结构(Java实例)
线性表是一种数据结构,对数据元素进行逻辑上的顺序排列。线性表链式存储结构是指用链表来存储线性表的数据元素。链表由节点组成,每个节点包含两部分:数据域和指针域。数据域存储节点的数据元素,指针域存储指向下一个节点的指针。链式存储结构相对于顺序存储结构的优点是可以更方便地进行插入和删除操作,通过修改节点的指针即可完成操作,而不需要移动大量数据。但是链式存储结构的缺点是访问节点需要通过指针进行跳转,相对于顺序存储结构,访问速度会慢一些。此外,链式存储结构需要额外的空间存储指针信息,会占用更多的内存空间。原创 2023-09-24 13:12:38 · 373 阅读 · 0 评论 -
算法解析-最大最小值(分治思想)&冒泡排序
分治思想是一种算法设计技术,其核心思想是将一个大问题分解成许多小问题,然后分别解决这些小问题,最后将这些小问题的解合并成大问题的解。其基本步骤可以分为三步:分解原问题:将原问题分解成若干个规模较小、相互独立、与原问题形式相同的子问题。求解子问题:用递归的方式求解子问题。如果子问题的规模足够小,则直接求解,否则继续分解子问题,递归求解。合并问题解:将子问题的解合并成原问题的解。分治思想常用于解决数值计算问题、图像处理等领域,也是许多算法的基础,如快速排序、归并排序等。原创 2021-07-07 10:16:21 · 384 阅读 · 0 评论 -
算法解析-排序算法之冒泡排序
算法是一组解决问题的步骤和规则,可以帮助我们在计算机程序中完成各种任务。好的算法可以优化程序的性能,提高程序的效率,并使程序更易于理解和维护。算法也是计算机科学中一种非常基础的概念,对于计算机科学专业的学生来说,学好算法将为他们日后的学习和工作奠定非常重要的基础。严格来说不是标准的冒泡排序算法,因为不满足它“两两比较相邻记录”的冒泡排序思想,它更应该是最简单的交换排序而已。冒泡排序是一种交换排序,他的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。👆上面的话是别人说的。原创 2020-09-05 22:40:51 · 736 阅读 · 0 评论 -
数据结构与算法-算法基础
算法基础1 算法与数据结构的关系2 两种算法比较3 算法概念3.1 定义3.2 算法特性4 算法设计要求5 算法效率度量方式5.1 事后统计方法5.2 事前分析估算方法1 算法与数据结构的关系只谈数据结构,固然可以,但在很短时间里学习完几种重要的数据结构,并不会完全掌握。但是如果把相应的算法也学一学,就会发现,算法使很多看似很难解决或者没法解决的问题,变得如此美妙和神奇。2 两种算法比较int i,sum=0,n=100;for(i=1;i<=n;i++){ sum=sum+1;}pr原创 2020-05-27 22:32:33 · 626 阅读 · 1 评论 -
数据结构与算法-数据结构绪论
“你数据结构怎么学的?”1 基本概念及术语1.1 数据描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。 数据不仅包括整型、实型等数值型号,还包括字符及声音、图像、视频等非数值类型。1.2 数据元素是组成数据的、有一定意义的基本单位、在计算机中通常作为整体处理。也被称为记录。例:数据:人类,则数据元素:人数据:畜类,则数据元素:牛、马、羊等1.3 数据项一个数据元素可以由若干个数据项组成。例:数据元素:人,则数据项:鼻子、眼睛、手等从另一原创 2020-05-27 14:42:18 · 339 阅读 · 0 评论 -
数据结构与算法学习方法
阅读是一件主动的事,阅读越主动,效果越好。要想获得更多,可能也需要付出类似写作一样的力气去阅读。例如:摘抄文字、眉批心得、稿纸演算、代码验证,以及在工作学习中的实际运用等。这些相应的活动能使我们得到巨大的收获!### 2.改造代码将书中的代码(C语言)改造成自己熟悉的语言(比如Java、Python)就是一种较好的学习方式。改造代码的方法包括以下几个步骤:1. 了解代码:了解代码的结构、功能和技术实现。2. 设定目标:确定需要对代码进行的改造目标。3. 制定计划:制定改造计划和实现方案,包括所需原创 2020-05-27 13:43:36 · 449 阅读 · 0 评论 -
数据结构与算法-线性表(上)
线性表是一种线性结构,由同一类型的数据元素构成一个有序序列。线性表中的数据元素称为元素,每个元素都有一个唯一的前驱元素和后继元素,除第一个元素外,其他元素都有一个前驱元素;除了最后一个元素,其他元素都有一个后继元素。线性表常用的实现方式有数组和链表。常见的线性表包括数组、链表、栈、队列等。线性表的应用广泛,例如在数据结构中保存序列、在数据库中保存表格数据等。## 2 线性表的抽象数据类型线性表是一种抽象数据类型,它由一组相同数据类型的元素组成,数据元素之间的关系是一对一的关系。线性表具有以下特点:>原创 2020-06-06 11:04:58 · 195 阅读 · 0 评论 -
数据结构与算法-线性表(下)链式存储结构
线性表是一种数据结构,对数据元素进行逻辑上的顺序排列。线性表链式存储结构是指用链表来存储线性表的数据元素。链表由节点组成,每个节点包含两部分:数据域和指针域。数据域存储节点的数据元素,指针域存储指向下一个节点的指针。链式存储结构相对于顺序存储结构的优点是可以更方便地进行插入和删除操作,通过修改节点的指针即可完成操作,而不需要移动大量数据。但是链式存储结构的缺点是访问节点需要通过指针进行跳转,相对于顺序存储结构,访问速度会慢一些。此外,链式存储结构需要额外的空间存储指针信息,会占用更多的内存空间。链式原创 2020-06-06 11:11:13 · 223 阅读 · 0 评论 -
数据结构和算法学习之路
这篇文章讲了什么?我这些年学习数据结构和算法的总结。一些不错的算法书籍和教程。算法的重要性。初学第一次接触数据结构是在大二下学期的数据结构课程。然而这门课程并没有让我入门——当时自己正忙于倒卖各种MP3和耳机,对于这些课程根本就不屑一顾——反正最后考试划个重点也能过,于是这门整个计算机专业本科最重要的课程就被傻逼的我直接忽略过去了。直到大三我才反应过来以后还要找工作——而且大二的折腾证明了我并没有什么商业才能,以后还是得靠码代码混饭吃,我当时惊恐的发现自己对编程序几乎一无所知,于是我给自己制转载 2020-05-28 11:39:18 · 82 阅读 · 0 评论