python學習中小程序

使用是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)
相關文章
相關標籤/搜索