使用是python2.x的版本,在3以上版本須要注意下print函數,不然報錯python
冒泡排序:函數
1 #!/usr/bin/python 2 # coding:utf8 3 # 冒泡排序 4 def sort1(list1): 5 for i in range(len(list1)): 6 isEnd = True #經過標誌位減小循環次數 7 for j in range(len(list1)-1,0,-1): 8 if list1[j]<list1[j-1]: 9 tmp = list1[j] 10 list1[j] = list1[j-1] 11 list1[j-1] = tmp 12 isEnd = False 13 if isEnd: 14 break
15 16 17 18 list1 = [5,3,23,67,2,56,45,98,239,9] 19 sort1(list1) 20 print list1
選擇排序:spa
#!/usr/bin/python # coding:utf8 def sort2(list1): for i in range(len(list1)-1): min = i+1 isEnd = True for j in range(i+2,len(list1)): #尋找最小值,記錄最小值下標 if list1[min]>list1[j]: min = j isEnd = False if list1[i]>list1[min]: #tmp = list1[i] #list1[i] = list1[min] #list1[min] = tmp list1[i],list1[min] = list1[min],list1[i] isEnd = False if isEnd: break list1 = [5,3,23,68,2,56,45,98,239,10] sort2(list1) print list1
運行結果:code
[2, 3, 5, 9, 23, 45, 56, 67, 98, 239]從代碼看都是使用雙重循環,時間複雜度都是o(n2)