加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

数据结构和算法必知必会的50个代码实现

发布时间:2019-05-23 15:27:40 所属栏目:教程 来源:佚名
导读:本日在GitHub上发明白个很是不错的项目,今朝star 4700+,项目首要讲数据布局和算法,有多种说话 50个代码实现。 实现说话有c++,c#,go,java,javascript,object-c,python,scala,swift,尚有全天下最好的说话php。 地点: https://github.com/wangzh

本日在GitHub上发明白个很是不错的项目,今朝star 4700+,项目首要讲数据布局和算法,有多种说话 50个代码实现。

实现说话有c++,c#,go,java,javascript,object-c,python,scala,swift,尚有全天下最好的说话php。

地点:

https://github.com/wangzheng0822/algo

数据布局和算法必知必会的50个代码实现

涉及内容如下:

数组

  • 实现一个支持动态扩容的数组
  • 实现一个巨细牢靠的有序数组,支持动态增编削操纵
  • 实现两个有序数组归并为一个有序数组

链表

  • 实现单链表、轮回链表、双向链表,支持增删操纵
  • 实现单链表反转
  • 实现两个有序的链表归并为一个有序链表
  • 实现求链表的中间结点

  • 用数组实现一个次序栈
  • 用链表实现一个链式栈
  • 编程模仿实现一个赏识器的提高、退却成果

行列

  • 用数组实现一个次序行列
  • 用链表实现一个链式行列
  • 实现一个轮回行列

递归

  • 编程实现斐波那契数列求值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的写的不错,编码气魄威风凛凛也很是好,进修下吧,话说不懂算法的措施员只是码农。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读