![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
文章平均质量分 55
PenyPeng
千里之行始于足下
展开
-
动态规划求解最长回文字符串
首先介绍一下,动态规划算法: 动态规划问题就是,大问题分成小问题,不断地递归,比如一个1000个字符的字符串问题,这个问题的解决建立在999个字符的字符串问题的基础上再添加一个字符串。动态规划算法就是利用空间来提高效率,存储每个子问题处理的结构,然后再解决更大的问题时,如果利用到子问题则直接使用处理的子问题结果。这样可以减少冗余,提高效率。具体的算法的解释,我看了别人的一篇博客,讲解的不错原创 2017-06-18 16:31:45 · 1155 阅读 · 0 评论 -
Leetcode-2sum,3sum,4sum
Leetcode-2sum,3sum,4sum(Python)解析LeetCode有三道题是求一个数组中的数字任意三个或者四个数的和等于目标值的题。最简单,最暴力的方法就是每三个或者四个数都进行尝试,时间复杂度是o(n^3)或是o(n^4),肯定是超时的。主要思想是,利用两个指针进行移动,选取符合条件的数字。原创 2017-07-11 16:35:31 · 432 阅读 · 0 评论 -
总结几种排序算法(二)---选择排序
选择排序选择排序很简单,其实就是每次遍历,找到一个最大(最小)的数放在前面,所以对应的时间复杂度也就是O(n^2)。 算法步骤: 1.将第一个位置上的数字设置为a[1],依次与后面的数字a[j]比较,如果a[1]大则不做处理,如果a[1]小则交换两个数a[1]<–>a[j],然后继续比较直到将数组中所有数字都与a[1]进行比较后,则a[1]中存放的就是最大的数字; 2.将数组看成从a[2]开始原创 2017-07-30 19:49:55 · 442 阅读 · 0 评论 -
总结几种排序算法(一)---冒泡排序
本文主要对几种常用的排序算法进行总结,排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我主要介绍一下内部排序: 冒泡排序冒泡排序,不断遍历数组,比较前后两个数,如果前面比较小则交换(从大到小排序),继续向前访问,比较前后,将两者比较大的放在前面,不断遍历,知道某一次遍历,没有交换过任何一个数则说明排序原创 2017-07-24 16:06:59 · 453 阅读 · 0 评论 -
blast--remove the redundant protein chains whose sequence identity ≤30%
用blast软件对226条蛋白质链进行除冗余操作,包含对blast的使用,创建数据集,以及如何获得最终的非冗余数据集。原创 2017-07-14 20:02:11 · 1174 阅读 · 0 评论 -
GitHub上Top20个 Python 语言机器学习项目
Scikit-learnwww.github.com/scikit-learn/scikit-learnScikit-learn 是基于Scipy为机器学习建造的的一个Python模块,他的特色就是多样化的分类,回归和聚类的算法包括支持向量机,逻辑回归,朴素贝叶斯分类器,随机森林,Gradient Boosting,聚类算法和DBSCAN。而且也设计出了Python numerical和scien转载 2017-08-09 21:00:09 · 273 阅读 · 0 评论 -
Reverse the linked list--递归与迭代
Reverse the linked list–递归与迭代本文以逆转单链表的例子解释递归与迭代1.递归递归就是 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。(百度百科) 总结:利用调用自身来不断原创 2018-01-19 14:54:11 · 321 阅读 · 0 评论