最近GitHub上发现了个非常不错的项目,目前star 4000+,项目主要讲数据结构和算法,有多种语言 50个代码实现。

实现语言有c++,c#,go,java,javascript,object-c,python,scala,swift,还有全世界最好的语言php。

涉及内容如下:

数组

  • 实现一个支持动态扩容的数组

  • 实现一个大小固定的有序数组,支持动态增删改操作

  • 实现两个有序数组合并为一个有序数组

链表

  • 实现单链表、循环链表、双向链表,支持增删操作

  • 实现单链表反转

  • 实现两个有序的链表合并为一个有序链表

  • 实现求链表的中间结点

  • 用数组实现一个顺序栈

  • 用链表实现一个链式栈

  • 编程模拟实现一个浏览器的前进、后退功能

队列

  • 用数组实现一个顺序队列

  • 用链表实现一个链式队列

  • 实现一个循环队列

递归

  • 编程实现斐波那契数列求值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背包问题

  • 最小路径和

  • 编程实现莱文斯坦最短编辑距离

  • 编程实现查找两个字符串的最长公共子序列

  • 编程实现一个数据序列的最长递增子序列

看了下C++和java的写的不错,编码风格也非常好,学习下吧,话说不懂算法的程序员只是码农。

更多文章

欢迎投稿!

7年Java游戏后端,被淘汰辛酸史

华为员工晒2018年分红:年终奖91万,年收入突破2百万

传OPPO员工离职后照发12万年终奖

c++冒泡排序代码_【开源推荐】数据结构和算法必知必会的50个代码实现相关推荐

  1. 分享一个开源的项目,数据结构和算法必知必会的50个代码实现

    数据结构和算法必知必会的50个代码实现 这个开源项目是有前Google工程师打造出来的,使用了c,go,java,python,php等很多中语言实现了一些数据结构和算法,对于喜欢算法的来说可谓是一个 ...

  2. 《代码随想录(Carl)》 数据结构与算法 程序的性能分析知识点总结

    <代码随想录(Carl)> 数据结构与算法 程序的性能分析 2.1时间复杂度分析 2.1.1时间复杂度 时间复杂度是一个函数,它定性描述该算法的运行时间. 假设算法的数据规模为n,操作单元 ...

  3. c2064 项不会计算为接受0个参数的函数_【JS必知必会】高阶函数详解与实战

    本文涵盖 前言 高级函数概念 函数作为参数的高阶函数 map filter reduce sort详解与实战 函数作为返回值的高阶函数 isType函数与add求和函数 如何自己创建高阶函数 前言 一 ...

  4. tensorflow 按维度相加_人工智能 TensorFlow 必知必会编程概念整理

    内容概括: 学习 TensorFlow 编程模型的基础知识,重点了解以下概念: 张量 指令 图 会话 构建一个简单的 TensorFlow 程序,使用该程序绘制一个默认图并创建一个运行该图的会话 概念 ...

  5. mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)

    站在巨人的肩上 Standing On Shoulders Of Giants 部分转自:https://www.jianshu.com/p/294502893128 https://blog.csd ...

  6. MySQL必知必会 代码+说明 全书整理

    前不久收获一本<mysql必知必会>实体书,这周得空将整本书再次回顾了下. 整理了书中全部的代码,加上了必要的语句说明. 我所使用的软件版本:mysql workbench 8.0.15 ...

  7. 《SQL必知必会》第六课 用通配符进行过滤 使用LIKE操作符,%、[]、_通配符进行通配搜索

    第六课 用通配符进行过滤 使用LIKE操作符,%.[]._通配符进行通配搜索 #前面使用的所有操作符过滤中使用的值都是已知的 #利用通配符可以创建比较特定数据的搜索模式 #通配符:用来匹配值的一部分的 ...

  8. java的标量和聚合量_第5节:Java基础 - 必知必会(下)

    第5节:Java基础 - 必知必会(下) 本小节是Java基础篇章的第三小节,主要讲述Java中的Exception与Error,JIT编译器以及值传递与引用传递的知识点. 一.Java中的Excep ...

  9. SpringBoot入门到精通_第6篇 _必知必会

    接上一篇:SpringBoot入门到精通_第5篇 _SpringBoot Actuator监控 https://blog.csdn.net/weixin_40816738/article/detail ...

  10. SpringBoot入门到精通_第7篇 _必知必会总结

    接上一篇:SpringBoot入门到精通_第6篇 _必知必会

最新文章

  1. python3 字符串前面加上'r'的作用
  2. (笔记)Ubuntu下安装arm-linux-gcc-4.4.3.tar.gz (交叉编译环境)
  3. python基础教程:可变,不可变数据类型
  4. python 接收邮件服务器地址_Python 用IMAP接收邮件
  5. 二,八,十,十六进制之间转换的相应方法
  6. python实现带头结点的单链表的就地逆置_6-1 带头结点的单链表就地逆置 (10 分)...
  7. KL散度、JS散度和交叉熵
  8. psd导出jpg太大_保存技巧,完美解决PS导出文件过大的问题
  9. MIMO中预编码Precoding和波束beamforming有什么区别?
  10. 发明专利授权:顺源科技模拟信号隔离放大及转换技术
  11. python的struck.pack的用法:浮点转字节
  12. php保存word没背景图,为什么word文档明明保存了却不见了
  13. 区块链基本原理及其技术实现 - 姜家志 | JTalk 第五期
  14. 三、使用HM进行简单的视频隐写demo
  15. 废旧电脑改装个人服务器
  16. HyperLynx(十二)BoardSim和PCB板级仿真分析(三)
  17. python 认证机构_利用Python爬了SIG官网BQB认证公司清单,我有一些重大发现..
  18. 每日新闻丨​百度地图发布语音定制功能​;Windows 10高CPU使用率问题已解
  19. HTML5和CSS3核心笔记
  20. 基于趋近律的滑模鲁棒控制simulink仿真

热门文章

  1. 设置Spring 3开发环境
  2. Java的访问控制修饰符_访问权限修饰符_访问权限修饰词
  3. android root权限函数,android 4.4下app永久获取root权限的方法
  4. java代码审计ssrf危险函数_某租车系统Java代码审计之后台注入漏洞分析
  5. r语言三维柱状图_R语言三维图的绘制
  6. ajax实现表单验证 html,Ajax+ajax做的表单验证
  7. python和rpa_什么是RPA
  8. t分布 u分布 卡方分布_中心极限定理|z分布|t分布|卡方分布
  9. python多个变量的for循环
  10. hdmi光端机运用于多媒体信息发布系统案例介绍