最近在学习Python,为了练手,也为了复习下数据结构和算法,就记录一下
首先,从最简单的冒泡排序开始,直接上代码:
def mySort(L):
i = 0
lenForL = len(L)
if lenForL <= 1:
return L
while(1):
j = i + 1
while(1):
if L[i] > L[j]:
temp = L[i]
L[i] = L[j]
L[j] = temp
j += 1
if(j >= lenForL):
break
i += 1
if i >= lenForL - 1:
break
L = list()
while(1):
s = input("input the number: ")
if s:
L.append(int(s))
else:
break
mySort(L)
print(L)
由于列表当参数传递(引用传参),所有原列表的值也被重排,如果不想这样的效果,在函数一开始,把函数修改如下
def mySort(D):
L = []
for d in D:
L.append(d)
i = 0
lenForL = len(L)
if lenForL <= 1:
return L
while(1):
j = i + 1
while(1):
if L[i] > L[j]:
temp = L[i]
L[i] = L[j]
L[j] = temp
j += 1
if(j >= lenForL):
break
i += 1
if i >= lenForL - 1:
break
return L
- 注:不能直接将D传给L,
D = L
这种,也是引用传参,Python中,每一个变量,只是绑定一个固定的内存地址,互相赋值,只是在这个固定的内存上,多加了一个绑定关系而已,这个与的接触过的,像c++、C、PHP这些都不大一样。