@@ -1402,45 +1402,51 @@ print binary_search(mylist,3)
14021402##11 快排
14031403
14041404``` python
1405- def qsort (seq ):
1406- if seq== []:
1407- return []
1405+ # coding:utf-8
1406+ def quicksort (list ):
1407+ if len (list )< 2 :
1408+ return list
14081409else :
1409- pivot= seq[0 ]
1410- lesser= qsort([xfor xin seq[1 :]if x< pivot])
1411- greater= qsort([xfor xin seq[1 :]if x>= pivot])
1412- return lesser+ [pivot]+ greater
1413-
1414- if __name__ == ' __main__' :
1415- seq= [5 ,6 ,78 ,9 ,0 ,- 1 ,2 ,3 ,- 65 ,12 ]
1416- print (qsort(seq))
1410+ midpivot= list[0 ]
1411+ lessbeforemidpivot= [ifor iin list[1 :]if i<= midpivot]
1412+ biggerafterpivot= [ifor iin list[1 :]if i> midpivot]
1413+ finallylist= quicksort(lessbeforemidpivot)+ [midpivot]+ quicksort(biggerafterpivot)
1414+ return finallylist
1415+
1416+ print quicksort([2 ,4 ,6 ,7 ,1 ,2 ,5 ])
14171417```
14181418
1419+ 递归基本思想:http://blog.csdn.net/morewindows/article/details/6684558
1420+
14191421##12 找零问题
14201422
1423+
14211424``` python
1422- def coinChange (values ,money ,coinsUsed ):
1423- # values T[1:n]数组
1424- # valuesCounts 钱币对应的种类数
1425- # money 找出来的总钱数
1426- # coinsUsed 对应于目前钱币总数i所使用的硬币数目
1427- for centsin range (1 , money+ 1 ):
1428- minCoins= cents# 从第一个开始到money的所有情况初始
1429- for valuein values:
1430- if value<= cents:
1431- temp= coinsUsed[cents- value]+ 1
1432- if temp< minCoins:
1425+
1426+ # coding:utf-8
1427+ # values是硬币的面值values = [ 25, 21, 10, 5, 1]
1428+ # valuesCounts 钱币对应的种类数
1429+ # money 找出来的总钱数
1430+ # coinsUsed 对应于目前钱币总数i所使用的硬币数目
1431+
1432+ def coinChange (values ,valuesCounts ,money ,coinsUsed ):
1433+ # 遍历出从1到money所有的钱数可能
1434+ for centsin range (1 ,money+ 1 ):
1435+ minCoins= cents
1436+ # 把所有的硬币面值遍历出来和钱数做对比
1437+ for kindin range (0 ,valuesCounts):
1438+ if (values[kind]<= cents):
1439+ temp= coinsUsed[cents- values[kind]]+ 1
1440+ if (temp< minCoins):
14331441 minCoins= temp
14341442 coinsUsed[cents]= minCoins
1435- print ( ' 面值为: {0} 的最小硬币数目为: {1} ' .format(cents, coinsUsed[cents]) )
1443+ print ( ' 面值: {0} 的最少硬币使用数为: {1} ' .format(cents, coinsUsed[cents]))
14361444
1437- if __name__ == ' __main__' :
1438- values= [25 ,21 ,10 ,5 ,1 ]
1439- money= 63
1440- coinsUsed= {i:0 for iin range (money+ 1 )}
1441- coinChange(values, money, coinsUsed)
14421445```
14431446
1447+ 思路:http://blog.csdn.net/wdxin1322/article/details/9501163
1448+ 方法:http://www.cnblogs.com/ChenxofHit/archive/2011/03/18/1988431.html
1449+
14441450##13 广度遍历和深度遍历二叉树
14451451
14461452给定一个数组,构建二叉树,并且按层次打印这个二叉树