您的位置:首页 > 编程语言 > Python开发

学习python之路---python小算法总结(四)

2013-03-18 16:26 441 查看
题目16:合并排序Python实现

外部排序——合并排序原理

合并排序法基本是将两笔已排序的数据合并并进行排序,如果所读入的数据尚未排序,可以先利用其它的排序方式来处理这两笔数据,然后再将排序好的这两笔数据合并。

importrandom

importcopy

number1 =random.sample(range(100), 10)

number2 =random.sample(range(100), 10)

number1.sort()

number2.sort()

defrecursive_sort(listA, listB):

"""

递归实现

"""

iflen(listA) == 0:

return listB

elif len(listB) == 0:

return listA

elif listA[0] < listB[0]:

return [listA[0]] +recursive_sort(listA[1:], listB)

else:

return [listB[0]] +recursive_sort(listB[1:], listA)

defsort(listA, listB):

"""

非递归实现

"""

len_A = len(listA)

len_B = len(listB)

if len_A == 0:

return listB

elif len_B == 0:

return listA

else:

i = 0

j = 0

listC = []

while i < len_A and j < len_B:

if listA[i] <= listB[j]:

listC.append(listA[i])

i += 1

else:

listC.append(listB[j])

j += 1

while i < len_A:

listC.append(listA[i])

i += 1

while j < len_B:

listC.append(listB[j])

j += 1

return listC

printnumber1

printnumber2

listC =recursive_sort(number1, number2)

printlistC

listC =sort(number1, number2)

运行结果如下:

[9, 15, 20, 27, 32, 33, 56, 62,78, 84]
[29, 35, 46, 50, 66, 69, 84,87, 89, 90]
[9, 15, 20, 27, 29, 32, 33, 35, 46, 50, 56,62, 66, 69, 78, 84, 84, 87, 89, 90]

题目17:遍历字符串

theString = 'Ix lixkxex xpxytxhxonx !'

defPrintEngine(c):

ifc != 'x':

printc,

map(PrintEngine,theString)

输出结果:I l i k e p y t h o n !

题目18: 除法小技巧

Python中将两个整数相除,默认结果是整数。使用如下语句,可以得到相除的结果为小数

from __future__ import division

print7/3

输出结果:

2.3333333333

题目19:打印字符串格式

print '|','*'.ljust(10),'|'

print '|','*'.ljust(10,'-'),'|'

print '|','*'.rjust(10,'-'),'|'

print '|','*'.center(10,'-'),'|'

for a in range(1, 6):

print 'a ='.ljust(5), repr(a).ljust(10), 'b = '.ljust(5), repr(a * 2)

| * |

|*--------- |

|---------* |

|----*----- |

a= 1 b = 2

a= 2 b = 4

a= 3 b = 6

a= 4 b = 8

a= 5 b = 10

题目20:初始化多维数组

Python中初始化一个5X3每项为0的数组,较好的方法是

multilist = [[0 for col in range(5)] forrow in range(3)]

multilist[0][0]='love china'

print multilist

[['love china', 0, 0, 0, 0], [0, 0, 0, 0,0], [0, 0, 0, 0, 0]]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: