首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
runtime
email
text
cmd
input
require
vbscript
header
select
char
actionscrip
random
export
copy
schema
integer
php5
python3
php7
php8
chat
metadata
settings
tree
typescript
uml
bash
foreach
js
bit
nodejs
fetch
subset
testing
scala
rsa
uri
window
php
hashcode
flutter
range
format
sum
io
merge
substring
iostream
usb
jsp
c语言
split
shell
loops
spring
match
node.js
stream
cookie
grid
post
hashtable
express
get
buffer
frameworks
import
function
regex
string
request
callback
solr
const
go
search
keyword
process
datetime
当前位置:
开发笔记
>
编程语言
> 正文
分享一个开源的项目,数据结构和算法必知必会的50个代码实现
作者:Hykun | 来源:互联网 | 2023-05-17 17:24
数据结构和算法必知必会的50个代码实现
这个开源项目是有前Google工程师打造出来的,使用了c,go,java,python,php等很多中语言实现了一些数据结构和算法,对于喜欢算法的来说可谓是一个福利,目前在github上面已经获得了4700+的star。
github地址
这个项目主要包含以下内容
数组
实现一个支持动态扩容的数组
实现一个大小固定的有序数组,支持动态增删改操作
实现两个有序数组合并为一个有序数组
链表
实现单链表、循环链表、双向链表,支持增删操作
实现单链表反转
实现两个有序的链表合并为一个有序链表
实现求链表的中间结点
栈
用数组实现一个顺序栈
用链表实现一个链式栈
编程模拟实现一个浏览器的前进、后退功能
队列
用数组实现一个顺序队列
用链表实现一个链式队列
实现一个循环队列
递归
编程实现斐波那契数列求值f(n)=f(n-1)+f(n-2)
编程实现求阶乘n!
编程实现一组数据集合的全排列
排序
实现归并排序、快速排序、插入排序、冒泡排序、选择排序
编程实现O(n)时间复杂度内找到一组数据的第K大元素
二分查找
实现一个有序数组的二分查找算法
实现模糊二分查找算法(比如大于等于给定值的第一个元素)
散列表
实现一个基于链表法解决冲突问题的散列表
实现一个LRU缓存淘汰算法
字符串
实现一个字符集,只包含a~z这26个英文字母的Trie树
实现朴素的字符串匹配算法
二叉树
实现一个二叉查找树,并且支持插入、删除、查找操作
实现查找二叉查找树中某个节点的后继、前驱节点
实现二叉树前、中、后序以及按层遍历
堆
实现一个小顶堆、大顶堆、优先级队列
实现堆排序
利用优先级队列合并K个有序数组
求一组动态数据集合的最大Top K
图
实现有向图、无向图、有权图、无权图的邻接矩阵和邻接表表示方法
实现图的深度优先搜索、广度优先搜索
实现Dijkstra算法、A*算法
实现拓扑排序的Kahn算法、DFS算法
回溯
利用回溯算法求解八皇后问题
利用回溯算法求解0-1背包问题
分治
利用分治算法求一组数据的逆序对个数
动态规划
0-1背包问题
最小路径和
编程实现莱文斯坦最短编辑距离
编程实现查找两个字符串的最长公共子序列
编程实现一个数据序列的最长递增子序列
欢迎加入公众号学习交流,该公众号会分享有趣的新闻和爬虫,数据分析和Python后端等知识
算法
编程
php
go
java
python
git
数组
队列
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
缓存
揭秘阿里云WAF背后神秘的AI智能防御体系
背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ...
[详细]
蜡笔小新 2023-12-11 01:30:52
缓存
JVM 学习总结(三)——对象存活判定算法的两种实现
本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ...
[详细]
蜡笔小新 2023-12-13 18:59:46
cmd
Composer依赖管理的重要性及使用方法
本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ...
[详细]
蜡笔小新 2023-12-11 17:06:18
cmd
操作系统的定义和功能
本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ...
[详细]
蜡笔小新 2023-12-11 14:17:13
cmd
腾讯安全平台部招聘安全工程师和数据分析工程师
腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ...
[详细]
蜡笔小新 2023-12-10 17:01:40
cmd
Java工具类库Hutool介绍及功能概述
本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ...
[详细]
蜡笔小新 2023-12-14 14:29:36
email
Redis数据结构之string应用场景解析
本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ...
[详细]
蜡笔小新 2023-12-14 14:02:42
email
解决Mac上无法使用localhost连接mysql的问题
本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ...
[详细]
蜡笔小新 2023-12-13 17:48:58
email
企业数据应用挑战及元数据管理的重要性
本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ...
[详细]
蜡笔小新 2023-12-12 15:39:22
email
Python爬虫中使用正则表达式的方法和注意事项
本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ...
[详细]
蜡笔小新 2023-12-12 11:51:07
email
2022年的风口:你看不起的行业,真的很挣钱!
本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ...
[详细]
蜡笔小新 2023-12-11 18:31:31
js
OkHttp3的基本使用及其特性
本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ...
[详细]
蜡笔小新 2023-12-10 22:46:04
js
互联网思维中的3个段子,9大分类和19条法则
本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ...
[详细]
蜡笔小新 2023-12-10 14:58:10
js
Python基础篇:315道题目及答案整理,帮助你检验学习成果
本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ...
[详细]
蜡笔小新 2023-12-10 14:33:46
js
Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ...
[详细]
蜡笔小新 2023-10-17 20:32:59
Hykun
这个家伙很懒,什么也没留下!
Tags | 热门标签
runtime
email
text
cmd
input
require
vbscript
header
select
char
actionscrip
random
export
copy
schema
integer
php5
python3
php7
php8
chat
metadata
settings
tree
typescript
uml
bash
foreach
js
bit
RankList | 热门文章
1
MOSEC议题解读 | A Tale of Two Mallocs
2
为什么linuxC程序设计中不能使用system(cd ..)来改变当前工作路径而用chdir()函数
3
《琴曲歌辞·别鹄操》翻译 原文赏析诗人唐韩愈
4
Javaenum枚举类
5
数据结构算法(4)并查集
6
MarkDown的vim插件安装
7
http主要内容流程介绍
8
Win10安装和使用Linux子系统(WSL 2)完整指南
9
steps/train_mono.sh
10
NETVBCSCompiler.exe占用100%,造成项目卡顿的的解决方法
11
NEAR 在 ETHDenver 大会精彩集锦
12
使用JavaScript总结大量数字的最佳方法?
13
【BZOJ1304】[CQOI2009]叶子的染色 树形DP
14
linux编译器 make,linux中的‘make’和‘makefile’
15
Linux 命令行获取天气
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有