剛剛遺失了缺少的信息!python函數排序交替磁盤
我需要一些幫助與我的任務在這裏,這是基本的python編程,但我實施該功能時卡住了。希望可以有人幫幫我!!在此先感謝^^
任務: 首先,我需要建立一個數組,A 2n交替'1'和'0'。即101010 然後,我需要按照所有0的順序對它們進行排序,然後全1。即000111
要做到這一點,我需要構建一個函數Arrange_Disks(A,n)來接收數組A和n以及在完成2n個磁盤的必要移動後返回數組。主要功能應該顯示排列前後的數組以及執行排列所需的移動次數。在2範圍內使用n值至10
下面是我迄今所做的功能:
A=[]
def Arrange_Disks(A,n):
moves=0
for i in xrange(n):
minn=i
for j in xrange(i+1,n):
if A[j]<A[minn]:
minn=j
moves+=minn-i
A[i],A[minn]=A[minn],A[i]
return A
return moves
def main():
n=input("Please enter a number between 2 to 10: ")
for disk in range (1,(2*n+1)):
if (disk%2) != 0:
A.append("1")
else:
A.append("0")
print "This is the original array: ", A
Arrange_Disks(A,n)
print "This is the sorted array: ", A
print "This is the number of moves required: ", moves
main()
不知怎的,當我運行這段代碼,那隻能說明,直到這裏:
>Please enter a number between 2 to 10: 3
>This is the original array: ['1', '0', '1', '0', '1', '0']
>This is the sorted array: ['0', '1', '1', '0', '1', '0']
>This is the number of moves required: 0
和輸出並不反映的移動次數...
所以我想知道如果有人能賜教我的代碼。我知道這是一個很長的問題,非常感謝您閱讀並花時間回答我的問題!
PS我做了一個冒泡排序的方式對這個問題 ,我使用python 2.7
許多再次感謝^^
只是一個小點,你可以有多個'return' stat在方法中表達但是你寫你的方式,第一個將退出該方法,第二個將永遠不會運行。 –