最直观的解法,排序之后取下标为k的值即可. 但是此处采取的方法为类似快速排序分块的方法,利用一个支点将序列分为两个子序列(支点左边的值小于支点的值,支点右边大于等于支点的值). 如果支点下标等于k,则支点就是查找的值,如果支点的下标大于k,则在左子序列里继续寻找,如果支点下标小于k,则继续在支点右子序列里面继续寻找第(k-支点下标)小的值. c#实现算法如下: public class FindSpecialOrderElement<T> where T : IComparable<T&…
编码 from __future__ import division def get_aa_percentage(protein, aa_list=['A','I','L','M','F','W','Y','V']): protein = protein.upper() protein_length = len(protein) total = 0 for aa in aa_list: aa = aa.upper() aa_count = protein.count(aa) total += a…