
数据结构和算法
万万2014
这个作者很懒,什么都没留下…
展开
-
插入排序
def insert_sort(arr): for i in range(1, len(arr)): cur = arr[i] t = i-1 while t>=0 and arr[t]> cur: arr[t+1],arr[t] = arr[t],cur t= t-1 ...原创 2012-10-17 12:23:59 · 306 阅读 · 0 评论 -
乱序字符串比较 python
乱序字符串是指一个字符串只是另一个字符串的重新排列。例如,'heart'和'earth'就是乱序字符串。下面的方法是比较连个字符串是不是乱序字符串,下面应该是算法复杂度比较小的的了。其他的先排序,然后比较。应该算比较容易想到。但是复杂度会提高。def compileStr(a,b): s1 = [0]*26 s2 = [0]*26 flag = 0...原创 2019-06-04 16:17:16 · 580 阅读 · 3 评论 -
Python 求最大不重复子串
题目:一个字符串,找出不含有重复字符的最长子串的长度。例子: 假定给出字符串:"mabcafrab" , 那么它的最长不重复子串是“bcafr” 加入给出是“aaaaaaaa”,那么它的最长不重复是“a”思路: 设置一个字典类型,dic{当前字符, 当前字符的位置}, 初始为{}, 判断字符串字符,如果字符不在dic中,则把这个字符加入,{'m':0}, 同时...原创 2019-05-20 11:11:56 · 2955 阅读 · 0 评论 -
python 反转字符串中的单词
1、问题描述:you are student ------>结果为:student are you, 考虑不使用split和reverse 方法2、 思路:按照单词逆序,然后整个字符串逆序。input your words:you are studentFirst change:uoy era tnedutsSecond change:student are you...原创 2019-05-08 14:28:39 · 2063 阅读 · 0 评论 -
分治法--快速排序
无语,直接上codestatic void quick_sort(int[] s, int l, int r) { if (l { int i = l, j = r, x = s[l]; while (i {原创 2013-01-23 14:55:42 · 190 阅读 · 0 评论 -
判断大数是否是素数问题
判断一个素数的方法首先要从素数的定义来看,一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。来自百度百科。这就可以看出我们要判断是否素数只要for(2<= i 附上简单code. def isPrimer(num): for i in range(2, int(math.sqrt(num)) + 1): if num % i == 0: return F原创 2013-01-08 15:48:52 · 3810 阅读 · 2 评论 -
一个简单的找数方法
今天看到一个题目,对于数组【1,4,5,4,6,8,8,8,9,12,134,45】 找出其中比前面数字都大,比后面的数字都小的item。写了一个很弱爆的方法。直接贴上。 public static void PrintBeforAfterNum(int[] arr) { int len = arr.Length;原创 2013-01-08 15:56:43 · 559 阅读 · 0 评论 -
冒泡排序
冒泡应该是排序中最简单的一个,思路就是每次把最重的或者最轻的石头落到底部。然后执行len循环,这样就可以达到石头按照重量排序。 static void Main(string[] args) { int[] arr = { 2, 5, 3, 6, 3, 23, 76, 34, 74, 33 };原创 2013-01-23 11:28:55 · 220 阅读 · 0 评论 -
python 找数组中最大子序列和
def findMaxNum(arr): sum = 0 max = arr[0] for data in arr: if(sum >= 0): sum += data else: sum = data if(sum > max): max = sum return max if __name__ == '__main__': a = [6,-原创 2012-10-16 15:42:51 · 596 阅读 · 0 评论 -
python 最大回文子串
给定一个字符串“abcdcbadegtefetge” 得到最大回文字符串“egtefetge”首先想到一个暴力解法:找到所有子串,判断每一个子串是否是回文.即a==a[::-1]def verifyreverse(st): target = '' flag = False if st == st[::-1]: target = st ...原创 2019-06-28 11:17:05 · 817 阅读 · 1 评论