#氣泡排序,核心就是先找出第一個再所有中最小的,再移到後面,找出第二個最小的
a=[1,3,4,2,7,6]
def bubble_sort(array):
for i in range(len(array)-1):
for j in range(len(array)-i-1):
if(array[j+1]<array[j]):
# temp=array[j]
# array[j]=array[j+1]
# array[j+1]=temp
array[j+1],array[j]=array[j],array[j+1]
return array
print(a)
bubble_sort(a)
print(a)
#選擇排序,選出最小的 放在前面
a=[1,3,4,2,7,6]
for s in range(len(a)):
print(s)
def selected_sort(array):
for i in range(len(array)-1):
index=i
for j in range(i+1,len(array)):
if(array[index]>array[j]):
index=j
array[i],array[index]=array[index],array[i]
return array
print(a)
selected_sort(a)
print(a)
#快速排序,以最後一個數字為基準,將後面的數字比基準大的排後面,比基準小的排前面。這樣就分成了兩個陣列,對兩個陣列重複操作,直至剩下一個數字
a=[2,3,1,4,7,5,6]
def QuickSort(array,left,right):
if(left<right):
i=Partition(array,left ,right)
QuickSort(array,left,i)
QuickSort(array,i+1,right)
# index的作用是記錄比基準數小的個數-1,方便陣列下標,array[index],array[i]=array[i],array[index] 的作用是把基準小的移到前面,這樣便於分成兩個陣列
def Partition(array,left ,right):
index=left-1
for i in range(left,right):
if(array[i]<=array[right]):
index+=1
array[index],array[i]=array[i],array[index]
array[index+1],array[right]=array[right],array[index+1]
return index
print(a)
QuickSort(a,0,len(a)-1)
print(a)