{範例} - 由小排到大排序 \<bubble> - 追蹤泡沫排序法的過程 ```python def switch(i): datas[i],datas[i+1]=datas[i+1],datas[i] datas=[31,5,12,1] print("排序前",datas) n=len(datas) for i in range(0,n): print(datas[i],datas[j],end=" ") for j in range(0,n-1): if datas[j]<datas[j+1]: switch(j) print(datas) print("排序後",datas) ``` 排序前 [31, 5, 12, 1] 31 12 [31, 12, 5, 1] 12 5 [31, 12, 5, 1] 5 5 [31, 12, 5, 1] 1 5 [31, 12, 5, 1] 排序後 [31, 12, 5, 1] ```python datas[0],datas[1]=datas[1],datas[0] print(datas) ``` [3, 5, 2, 1] 【afterclass】 - 1.執行下列程式何者正確 - datas=[3,5,2,1] - n=len(datas)-1 - for i in range(0,n): for j in range(0,n-i): if(datas[j]>datas[j+1]): datas[j],datas[j+1]=datas[j+1],datas[j] - print(datas) - ans:c ```python datas=[3,5,2,1] n=len(datas)-1 for i in range(0,n): for j in range(0,n-i): if(datas[j]>datas[j+1]): datas[j],datas[j+1]=datas[j+1],datas[j] print(datas) ``` [1, 2, 3, 5] - 2.執行下列程式結果何者正確 - num=[67,12,9,52,91,3] - no=52 - for i in range(len(num)): if(num[i]==no): break - print(i) ans:d ```python num=[67,12,9,52,91,3] no=52 for i in range(len(num)): if(num[i]==no): break print(i) ``` 3 3.下列哪一個排序法 執行搜尋前要先將資料排序 - ans:b 二元搜尋 4.有10000筆資料 使用循序搜尋最少需要多少次 ans:a 1 5.有10000筆資料 使用循序搜尋最多需要多少次 ans:b 10000 6.有10000筆資料 使用二元搜尋最多需要多少次 ans: d 14 7.下列哪一種搜尋方法效率最好 ans:a 二元 (不過主要還是要看場合使用啦) 8. 執行下列程式結果何者正確 ans:d以上皆非 ```python num=[256,731,943,389,142,645,829,945] name=["林小虎","王森中","招募水","李大同","臣子恐","谮美麗","曾溫柔","錢來多"] no=100 isFound=False for i in range(len(name)): if (num[i]==no): isFound=True break if(isFound==True): print("中獎者的姓名為:",name[i]) else: print("無此中獎號碼") print("共比對%d次"%(i+1)) ``` 無此中獎號碼 共比對8次 9.同第八題 中獎者姓名? ans: d 無此中獎號碼! 10.同第八題 這程式是 ans:b循序搜尋 - 名詞解釋 : - 演算法:為了解決一個問題採取的方法和步驟 - 虛擬碼:以一般語言來寫程式語言 讓人好理解 - 流程圖:用圖像化表示程式邏輯步驟
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up