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

2021-08-07 14:56:48 字數 1471 閱讀 7399

氣泡排序演算法的運作如下:(從後往前)

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

針對所有的元素重複以上的步驟,除了最後乙個。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

#
簡單選擇排序演算法原理:每次從左至右掃瞄序列,記下最小值的位置。

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__":

defbubble

(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******select

(mylist,lens):

min,stp=0,0

for i in xrange(lens-1):

min=i

for j in xrange(i,lens):

if(mylist[j]if(min!=i): ##表示mylist[i]不是最小的值 mylist[min]是最小的值,

stp=mylist[min]

mylist[min]=mylist[i]

mylist[i]=stp

return mylist

relist=******select(inputval,len(inputval))

print (u'簡單排序:'+' '.join(map(str,relist)))

結果下下圖所示:

簡單選擇排序和氣泡排序

關於排序,氣泡排序和簡單選擇排序應該是最簡單的排序了 排序過程 從小到大排序比較第乙個與第二個數,若a 0 a 1 則交換 然後比較第二個數和第三個數 以此類推,直到第n 1個數和第n 個數比較為止 第一趟氣泡排序結束 陣列中最大的數被排在了最後 對前n 1個個數進行氣泡排序,結果是次大的數排在第n...

氣泡排序and簡單選擇排序

在第一趟排序中,從第乙個元素開始,掃瞄整個待排序元素序列,若相鄰的兩個元素逆序,則交換位置。直到最後乙個元素,此時,最後乙個元素必為最大的元素。第二趟排序,依然從第乙個元素開始掃瞄直到倒數第二個元素。第三趟排序,從第乙個掃瞄到倒數第三個。直到只剩乙個元素需要掃瞄。程式如下 includeint ma...

排序之路 氣泡排序和簡單選擇排序

以前上大學,沒有好好跟老師一起學習教材裡晦澀難懂的那些演算法。如果上天在給我一次機會,我一定。屁話,言歸正傳。氣泡排序 氣泡排序,這個名字就能想象到開水沸騰的場景,泡泡從下到上冒起,實則該排序也是有這個 冒泡 的過程。我們來看乙個陣列 arr 2,0,1,9,12,31,8,30 利用氣泡排序實現從...