数据结构与算法
文章平均质量分 92
ghsticker
搞编程的小学生
展开
-
碱基数据处理中的算法研究
碱基数据处理中的算法研究最近搞了一些对生物医学数据的处理,实际的处理逻辑是相当简单的,其实处理起来还是处理量大,时间效率的问题1.需求医学数据中会有碱基对序列数据,他们的要求是碱基序列转换为和它互补的碱基序列,将其做成一个网页端的,可以直接上传文件处理大文件数据,也可以直接在网页中贴上碱基序列处理完展示出来。2.需求分析当了解了一些基本的生物碱基序列的基本知识后,他们就是处理一些DNA碱基序列,其中的规则就是A-T,C-G,也就是想数据中的A转化成T,T转化成A,C转化成G,G转化成C,然后将原创 2020-12-15 13:51:04 · 552 阅读 · 0 评论 -
深度剖析快速排序
深度剖析快速排序快速排序是一个比较重要的排序算法,本文中主要讲解快排的递归非递归写法,,两种partition的方法和对快速排序的部分优化0.什么是快速排序快速排序是对冒泡排序的一种改进,通过一趟排序将排序的数据分割成独立的两个部分,其中一部分的所有数据比另一部分的所有数据都要小,在按这种方法对这两部分数据分别进行快速排序,整个排序的过程是递归进行的,使得整个数据变成有序序列。其实快排就是一个用基准数,将一个无序序列变成一个两部分整体有序,也就是在基准数之前的都小于基准数,后面的都大于基准数,所原创 2020-10-05 11:08:29 · 354 阅读 · 0 评论 -
棋盘覆盖问题递归与非递归解法(java版)
0.问题描述什么是棋盘覆盖呢?在一个2k×2k2^{k} \times 2^{k}2k×2k个方格组成的棋盘中,若有一个方格与其他方格不同,则称该方格为特殊方格,且称该棋盘为一个特殊棋盘.显然特殊方格在棋盘上出现的位置有4k4^{k}4k种情形.因而对任何k≥0k\ge 0k≥0,有 4k4^{k}4k种不同的特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格(红色框为特殊方格)以外的所有方格,且任何2个L型骨牌不得重叠覆盖。1.问题解决1.1分治法采用分治原创 2020-10-01 19:57:57 · 1659 阅读 · 1 评论 -
递归算法中的时间复杂度分析
递归算法中的时间复杂度分析对于一种算法的时间复杂度分析还是特别重要的,在一些非递归算法中,我们仅仅看运算次数最多的那一行代码可能执行多少次就可以,实际就是看在循环中变量的变化,但是对于递归算法中该怎么分析呢?下面介绍几种递归函数中的算法时间复杂度分析的方法0.递推法这种方法是最简单的,也是最容易理解的一种方法,对于一个递归函数,我们可以利用他的递归方程,将其递推到常量的情况下,这样子就很容易求解他的时间复杂度了,可以看一下下面的递归方程T(n){1n=12T(n−1)+1n>0T(n)\原创 2020-09-27 21:06:53 · 13849 阅读 · 2 评论 -
浅谈二分查找
浅谈二分查找最近看了二分查找的一些内容,记录一下。不要小看二分查找,看似简单的二分查找其实是暗藏玄机的。本文参考极客时间王争《数据结构与算法之美》0.什么是二分查找二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。(摘自百度百科)若你还是不理解,其实生活中还是有很多用处的。下面给...原创 2020-03-28 19:57:40 · 255 阅读 · 0 评论 -
单链表实现LRU算法
单链表实现LRU算法LRU应该是面试中常见的算法题目了,其实实现起来也不是特别的困难,使用的数据结构也是常见的单链表。下面使用java 实现。0.什么是LRULRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”1.思路首先选择合适的数据结构,这里使用的的单链表。如果...原创 2019-07-17 08:52:44 · 1194 阅读 · 0 评论 -
二叉树的遍历(递归,非递归实现)
二叉树的遍历(递归,非递归实现)二叉树的遍历是一些动态查找的基础,也是数据结构中的重要知识点。最近有时间重新回顾一个这几种常见的遍历方式。若有不对之处,请批评指正。0.什么是二叉树二叉树其实不难理解,有这官方的定义。要是你对普通的树型结构有所了解的话,二叉树其实是一颗特殊的树,它有着自己的特别。每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点。左右子树都是有顺序的,且次序不...原创 2019-08-14 15:18:35 · 172 阅读 · 0 评论