冒泡排序和簡單選擇排序實現

冒泡排序:

冒泡排序算法的運作如下:(從後往前)
比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
針對所有的元素重複以上的步驟,除了最後一個。
持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

#

簡單選擇排序

簡單選擇排序算法原理:每次從左至右掃描序列,記下最小值的位置。
1、先比較a[0]與a[1到lens-1]的值比較,如果a[0]最小位置不變,如果a[i]最小,則和a[0]交換位置
2、然後比較a[1]與a[2到lens-1]的值比較,最小值放在下標爲1的位置上

#code:utf-8
import sys
if __name__=="__main__":
    def bubble(myList):
        smp=0
        for i in xrange(1,len(myList)):
            for j in xrange(len(myList)-1):
                if(myList[j]>myList[j+1]):  #相鄰兩個數比較,大的放後面,小的放前面
                    smp=myList[j+1]
                    myList[j+1]=myList[j]
                    myList[j]=smp
        return myList
    inputVal=list(map(int,sys.stdin.readline().strip().split()))  #3 1 9 2 7 4 5 8 6 0
    print inputVal
    resList=bubble(inputVal)
    print (u'冒泡排序:'+'  '.join(map(str,resList)))

    def simpleSelect(myList,lens):
        min,stp=0,0
        for i in xrange(lens-1):
            min=i
            for j in xrange(i,lens):
                if(myList[j]<myList[min]):
                    min=j
            if(min!=i):    ##表示myList[i]不是最小的值  myList[min]是最小的值,
                stp=myList[min]
                myList[min]=myList[i]
                myList[i]=stp
        return myList
    reList=simpleSelect(inputVal,len(inputVal))
    print (u'簡單排序:'+'  '.join(map(str,reList)))

結果下下圖所示:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章