氣泡排序演算法的運作如下:(從後往前)#比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
針對所有的元素重複以上的步驟,除了最後乙個。
持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
簡單選擇排序演算法原理:每次從左至右掃瞄序列,記下最小值的位置。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 利用氣泡排序實現從...