随笔分类 - 算法与数据结构
摘要:AI时代,理解快速排序的不同思路 快速排序是实际应用中最快的通用排序算法,基于分治思想和分区策略。理解它的多种实现思路,不仅能帮你理解排序算法,更能让你在AI时代真正驾驭代码生成工具,写出有深度、有思考的程序。 为什么AI时代还要手写快排? AI可以几秒生成一段快排代码,但它并没有告诉你下面的3个问
阅读全文
摘要:Ontology(本体论)数据结构 本文主要为了搞清楚"Palantir Ontology 本体论的本质”,它的结构是怎样的,具体怎么用,与ER/OOP/DDD等有什么区别?"。 Palantir官方指出Ontology 主要用于连接数据与现实世界的业务对象、关系和决策流程。它包含 数据 (Data
阅读全文
摘要:JavaScript 数组去重的 20 种实现方式,用不同思路解决问题 数组去重是最常见的算法。看似简单,但不同实现方式的性能差异可能高达几百倍。本文整理 JavaScript 数组去重的 20 种写法,按 5 个策略分类,充分利用JavaScript的弱类型和动态性,帮助你理解语言特性,同时掌握多
阅读全文
摘要:Go 字符串查找的 20 种实现方式,用不同思路解决问题 字符串查找(在主串中找模式串第一次或全部出现的位置)是最常见的算法。看似只要一行 strings.Index,但背后有几十年的算法演进——同一个任务,朴素算法 O(m×n),KMP 是 O(m+n),Boyer-Moore 在自然文本上接近
阅读全文
摘要:Palantir 技术原理介绍 本文档基于 Palantir 官方《平台概览》、Foundry 文档(Object backend、Action types、AIP features)整理,探讨 Ontology(本体)、数据组织、决策机制与整体技术框架。公司定位、商业模式与案例见同目录下《业务介绍
阅读全文
摘要:AI时代,基于Ontology本体论的大数据底层结构分析 本文面向架构师、数据工程师、AI 应用开发者。讨论的问题是:在企业 AI 大量落地的今天,Palantir 这家公司被反复提及,背后并非它的模型能力,而是它二十年来构建的一种底层数据结构——Ontology(本体)。本文探讨究竟什么是Onto
阅读全文
摘要:Java 数组去重的 20 种实现方式,理解不同解决问题的思路 数组与列表去重是最常见的算法。看似简单,但不同实现方式的性能差异可能高达几百倍。整理Java数组去重的20种写法,按5个策略分类,帮你理解每类的核心思路。AI时代,可以不写代码,但需要理解不同解决问题的方式。 为什么性能差异这么大? 最
阅读全文
摘要:程序员必须掌握的核心算法思想 算法思想 ≠ 代码实现。同一个思想可以用多种语言、多种方式来实现。掌握算法思想,就是掌握问题求解的本质,通过不同的实现方式,将问题解决得更加高效。 概述 算法是解决问题的方法,解决问题的方法离不开指导思想,指导思想是解决问题的关键。 作为程序员,当我们面对一个复杂问题时
阅读全文
摘要:说明 数组(含List)去重复在日常工作中经常遇到,很多时候用到Set数据结构,但有时候我们需要针对数据进行干预,这时候就需要用其他的实现方式了。以下列出各种的去重方式,基本含括了所有情况。 源码下载 https://github.com/microwind/algorithms/blob/main
阅读全文
摘要:JavaScript实现归并排序算法详解 说明 归并排序(Merge Sort)算法,也叫合并排序,是创建在归并操作上的一种有效的排序算法。算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法,
阅读全文
摘要:说明 快速排序(QuickSort),又称分区交换排序(partition-exchange sort),简称快排。快排是一种通过基准划分区块,再不断交换左右项的排序方式,其采用了分治法,减少了交换的次数。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部
阅读全文
摘要:关于质因数分解算法的不同语言实现,通过实例来看不同语言的差异 什么是质因数算法? 即任意一个合数可以分解为多个质数相乘。例如: 20 = 2 * 2 * 5 45 = 3 * 3 * 5 210 = 2 * 3 * 5 * 7 520 = 2 * 2 * 2 * 5 * 13 按数学运算:列竖式或左
阅读全文
摘要:【希尔排序算法详解】Java/Go/Python/JS/C不同语言实现 说明 希尔排序(Shell Sort)是插入排序的一种改进版,也称递减增量排序算法(Diminishing Increment Sort),其实质是将数列分组,然后再按插入算法分别排序,因DL.Shell于1959年提出而得名。
阅读全文
摘要:说明 基数排序(RadixSort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在列表机(Tabulation
阅读全文

浙公网安备 33010602011771号