• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
思想人生从关注生活开始
博客园    首页    新随笔    联系   管理    订阅  订阅

随笔分类 -  架构设计类与算法

上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页
评分数据稀疏影响推荐准确性及可用性

摘要:个性化推荐需要大量的用户和物品数据作为模型的输入,但是用户和物品数据通常是非常稀疏的,这就导致了模型的准确性和可用性受到限制。这主要是因为以下几个原因:为什么用户和物品数据是稀疏的? 巨大的数据空间 假设我们有一个电商平台,有数百万种商品和数千万用户。理论上,每个用户都可能对每种商品有评分或购买记录 阅读全文
posted @ 2024-05-29 21:30 JackYang 阅读(164) 评论(0) 推荐(0)
余弦相似度简单介绍

摘要:余弦相似度原理 余弦相似度是一种衡量两个向量之间相似性的方法,它基于向量之间的夹角余弦值来计算。在文本挖掘、推荐系统等领域,余弦相似度被广泛应用来度量文档、用户偏好等对象之间的相似性。 定义 余弦相似度通过计算两个向量之间的夹角余弦值来衡量它们的相似性。余弦值越接近1,夹角越小,说明两个向量越相似; 阅读全文
posted @ 2024-05-29 21:24 JackYang 阅读(313) 评论(0) 推荐(0)
逆向思维思维模型

摘要:原理 逆向思维的工作原理基于以下几个方面: 反转视角:要求我们从与传统观点相反的角度看待问题,通过反转问题的方向、目标或假设,打破常规的思维模式,发现新的可能性和解决方案。 质疑假设:鼓励我们对既定的假设和前提提出质疑,挑战我们所接受的常规观念和限制,并促使我们思考为什么这些假设是正确的,是否存在其 阅读全文
posted @ 2024-05-28 14:12 JackYang 阅读(536) 评论(0) 推荐(0)
常用的搜索算法之迷宫求解问题

摘要:概述 迷宫求解问题是一个经典的图搜索问题,它涉及在给定的迷宫地图中找到一条从起点到终点的路径,同时需要避免遇到障碍物(通常是墙壁)。迷宫可以由二维网格表示,其中每个网格可以是一个可通过的空地、一个障碍物(墙壁)或特殊点(如起点和终点),使用数据结构(如队列、栈或优先队列)来跟踪已访问和待访问的节点。 阅读全文
posted @ 2024-05-28 10:13 JackYang 阅读(723) 评论(0) 推荐(0)
常用的搜索算法之深度优先搜索

摘要:深度优先搜索(DFS)原理 深度优先搜索(DFS)是一种用于遍历或搜索树或图的算法。该算法会尽可能深地搜索树的分支。当节点v的所在边都已被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这个过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上 阅读全文
posted @ 2024-05-28 09:37 JackYang 阅读(296) 评论(0) 推荐(0)
常用的搜索算法之DFS和BFS的区别是什么

摘要:DFS(深度优先搜索)和BFS(广度优先搜索)是两种用于遍历或搜索树或图的算法,它们之间存在一些关键的区别: 1. 搜索策略 DFS:尽可能深地搜索图的分支。当节点v的所在边都已被探寻过,搜索将回溯到发现节点v的那条边的起始节点。 BFS:从根(或某个任意节点)开始访问,并探索最近邻的节点。如果所有 阅读全文
posted @ 2024-05-28 09:22 JackYang 阅读(1275) 评论(0) 推荐(0)
哈希函数值如何还原

摘要:哈希函数值还原是一个复杂且通常不可行的任务,因为哈希函数的设计初衷就是单向的,即只能从原始数据生成哈希值,而不能从哈希值逆向还原出原始数据。不过,虽然直接逆向哈希函数是不可能的,但我们可以尝试通过一些方法来“猜测”或“恢复”原始数据,但这并不是真正的还原过程,而更像是一种破解或猜测。以下是一些可能的 阅读全文
posted @ 2024-05-28 08:05 JackYang 阅读(739) 评论(0) 推荐(0)
开放地址法(Open Addressing,如线性探测、二次探测等)

摘要:概述 开放地址法,也被称为开放寻址或闭散列,是哈希表处理冲突的一种方法。当哈希函数计算出的哈希地址被占用时,开放地址法会按照一定的策略在线性存储空间上探测其他位置,直到找到一个空位置来存储数据。以下是关于开放地址法的详细解释和几种常见的探测方法: 1. 基本概念: 开放地址法:通过系统的方法找到数组 阅读全文
posted @ 2024-05-28 00:27 JackYang 阅读(1326) 评论(0) 推荐(0)
常用的搜索算法之哈希搜索(Hashing Search)

摘要:哈希搜索(Hashing Search)是基于哈希表(Hash Table)的搜索方法。哈希表通过哈希函数(Hash Function)将键(Key)映射到数组的某个索引上,从而实现快速查找。下面我将解释哈希搜索的实现原理,给出一步步的数据演示,并最后提供Java代码示例。 实现原理 哈希函数:哈希 阅读全文
posted @ 2024-05-27 19:15 JackYang 阅读(1582) 评论(0) 推荐(0)
常用的搜索算法之二分搜索(Binary Search)

摘要:二分搜索(Binary Search)是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空, 阅读全文
posted @ 2024-05-27 19:00 JackYang 阅读(250) 评论(0) 推荐(0)
常用的搜索算法之线性搜索(Linear Search)

摘要:线性搜索(Linear Search)是一种非常简单的搜索算法,它按顺序遍历列表(或数组)中的每个元素,直到找到所需的元素或遍历完整个列表。下面我会描述线性搜索的实现原理、一步步数据演示,并给出Java代码示例。 实现原理 线性搜索的原理是遍历整个数据集合(通常是一个数组或列表),对集合中的每个元素 阅读全文
posted @ 2024-05-27 18:54 JackYang 阅读(638) 评论(0) 推荐(0)
常见搜索算法的分类与特性

摘要:搜索算法的分类与特性 搜索算法是用于在数据集中查找特定元素的算法。以下是几种常见的搜索算法及其起源、原理、时间复杂度和空间复杂度的概述: 线性搜索(Linear Search) 起源:线性搜索是一种最基础的搜索算法,其起源可以追溯到计算机科学的早期。 原理:线性搜索逐一比较数据集中的每个元素,直到找 阅读全文
posted @ 2024-05-27 18:49 JackYang 阅读(535) 评论(0) 推荐(0)
常见的算法分类方式

摘要:算法分类是一个广泛的主题,因为存在许多不同类型的算法,它们各自服务于不同的目的和领域。然而,以下是一些常见的算法分类方式: 基本算法分类: 搜索算法:如线性搜索、二分搜索、哈希搜索、深度优先搜索(DFS)、广度优先搜索(BFS)等。 排序算法:如冒泡排序、插入排序、选择排序、快速排序、归并排序、基数 阅读全文
posted @ 2024-05-27 18:41 JackYang 阅读(918) 评论(0) 推荐(0)
常用的排序算法之基数排序(Radix Sort)

摘要:基数排序(Radix Sort)起源或原理 基数排序(Radix Sort)是非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。它按照从低位到高位(或者从高位到低位)依次对待排序的元素进行排序,直到所有的位数都被排序完毕。基数排序的思想借鉴了人类的计数排序法,即按照 阅读全文
posted @ 2024-05-27 18:39 JackYang 阅读(523) 评论(0) 推荐(0)
常用的排序算法之桶排序(Bucket Sort)

摘要:原理 桶排序(Bucket Sort)是计数排序的升级版。它利用了函数的映射关系,将待排序的数据分散到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。 定义 桶排序是分布式排序算法,将数据分到有限数量的桶子里。每个 阅读全文
posted @ 2024-05-27 17:41 JackYang 阅读(405) 评论(0) 推荐(0)
常用的排序算法之计数排序(Counting Sort)

摘要:计数排序(Counting Sort) 原理 计数排序(Counting Sort)的起源并不明确指向某一个特定的发明者或时间点,但它作为一种简单直观的排序算法,在计算机科学中得到了广泛的应用。计数排序的基本思想是通过统计数组中每个元素出现的次数,来确定其在排序后数组中的位置。 定义 计数排序是一种 阅读全文
posted @ 2024-05-27 16:30 JackYang 阅读(410) 评论(0) 推荐(0)
常用的排序算法之堆排序(Heap Sort)

摘要:堆排序(Heap Sort)起源 堆排序的概念由J.W.J. Williams在1964年提出,并在计算机科学中得到了广泛的应用。它利用了堆这种数据结构所具备的性质来实现排序。堆通常是一个可以被看做一棵完全二叉树的数组对象。 定义 堆排序(Heap Sort)是指利用堆这种数据结构所设计的一种排序算 阅读全文
posted @ 2024-05-27 15:18 JackYang 阅读(361) 评论(0) 推荐(0)
常用的排序算法之快速排序(Quick Sort)

摘要:快速排序(Quick Sort)起源 快速排序是由英国计算机科学家托尼·霍尔(Tony Hoare)在1960年提出的一种排序算法。它的基本思想是分治法(Divide and Conquer)的应用。 定义 快速排序是一种高效的排序算法,它采用分治法的策略,将一个大的数组分割成两个小的子数组,并使左 阅读全文
posted @ 2024-05-27 14:43 JackYang 阅读(1165) 评论(0) 推荐(0)
常用的排序算法之归并排序(Merge Sort)

摘要:归并排序(Merge Sort) 起源 归并排序(Merge Sort)的算法是由约翰·冯·诺依曼(John von Neumann)在1945年提出的。但在实际的计算机编程中,归并排序通常被认为是由计算机科学家罗伯特·塞奇威克(Robert Sedgewick)在《算法》(Algorithms)一 阅读全文
posted @ 2024-05-27 14:23 JackYang 阅读(1915) 评论(0) 推荐(0)
常用的10种排序算法概述

摘要:前言 时间复杂度和空间复杂度是算法分析中非常重要的两个概念,它们分别用于衡量算法执行所需的时间和空间资源。 一、时间复杂度 定义: 时间复杂度是指执行算法所需要的计算工作量,它描述了算法运行时间与输入数据规模之间的关系。时间复杂度通常用大O符号(Big O notation)来表示,即O(f(n)) 阅读全文
posted @ 2024-05-27 13:30 JackYang 阅读(142) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3