Phtyon編程【明明同學(xué)的隨機(jī)數(shù)】_第1頁
Phtyon編程【明明同學(xué)的隨機(jī)數(shù)】_第2頁
Phtyon編程【明明同學(xué)的隨機(jī)數(shù)】_第3頁
Phtyon編程【明明同學(xué)的隨機(jī)數(shù)】_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Phtyon編程【明明同學(xué)的隨機(jī)數(shù)】明明想在學(xué)校中邀請一些同學(xué)一做一項問卷調(diào)查,為了表達(dá)實 驗的客觀性,他先是用計算機(jī)生成了 N個1到1000之間的隨機(jī)整數(shù) (NW1000),對于其中重復(fù)的數(shù)字,只保存一個,把其余相同的數(shù) 去掉,不同的數(shù)對應(yīng)著不同的學(xué)生的學(xué)號。然后再把這些數(shù)從小到 大排序,按照排好的順序去找同學(xué)做調(diào)查。請你協(xié)助明明完成“去 重”與“排序”的工作?!据斎朊枋觥枯斎攵嘈校容斎腚S機(jī)整數(shù)的個數(shù),再輸入相應(yīng) 個數(shù)的整數(shù)。【輸出描述】返回多行,處理后的結(jié)果。輸入數(shù)據(jù)樣例輸出數(shù)據(jù)樣例1110204032674020893004001510152032406789300400.討論怎樣完成

2、數(shù)據(jù)的讀入和輸出?相同的數(shù)字怎樣處理?經(jīng)過討論,同學(xué)們認(rèn)為選用哪種排序方法比擬合適?這個問題的數(shù)據(jù)范圍較?。?000以內(nèi)),隨機(jī)數(shù)字的個數(shù)也不 多(NW1000),可以采用冒泡排序的方法進(jìn)行由小到大的排序,但 對于重復(fù)的數(shù)字,在輸出時進(jìn)行去重處理比擬麻煩,再就是冒泡排 序采用雙重循環(huán)的方式進(jìn)行,最大循環(huán)次數(shù)(時間復(fù)雜度)大約是 1000*1000次,比擬浪費(fèi)時間。如果我們采用桶排序的方法,設(shè)置1000個桶來負(fù)責(zé)存儲對應(yīng)的 數(shù)字并做好標(biāo)記,在輸出時按由小到大的順序有標(biāo)記的桶編號就可 以簡單地實現(xiàn)排序與查重工作,循環(huán)次數(shù)最多1000次,大大節(jié)省了 時間。m=1010#設(shè)置小桶個數(shù)時,比最大數(shù)值稍多

3、一些,防止數(shù)據(jù)溢出n=int(input (請輸入排序自然數(shù)的個數(shù))s=0#定義列表for i in range(l, m+1):s.append(0)for i in range(ln+1):x=int(input (輸入學(xué)號”)sx=sx+lprint(排序結(jié)果如下:)for i in range(l0:print(i)Phtyon編程【順序比擬的選擇排序】選擇排序和冒泡排序很類似,但是選擇排序每輪比擬只會有一 次交換,而冒泡排序會有屢次交換,交換次數(shù)比冒泡排序少,所以 在數(shù)據(jù)量小的時候可以用選擇排序。通過本節(jié)的學(xué)習(xí),你將掌握以下技能:了解選擇排序的基本概念。理解選擇排序算法過程的執(zhí)行過程

4、。學(xué)會用選擇排序進(jìn)行數(shù)據(jù)的排序。1.工作原理選擇排序的工作原理是每一次從待排序的數(shù)據(jù)元素中選出最小 (或最大)的一個元素,存放在序列的起始位置。然后重復(fù)上述操 作,找出第二?。ù螅┑脑睾偷诙€位置的元素互換,以此類推 找出剩余最?。ù螅┰貙⑺鼡Q到前面,即完成排序。優(yōu)點:選擇排序與數(shù)據(jù)移動有關(guān)。如果某個元素位于正確的最 終位置上,那么它不會被移動。選擇排序每次交換一對元素,它們當(dāng) 中至少有一個將被移到其最終位置上,因為對n個元素的表進(jìn)行排 序總共進(jìn)行至多n-1次交換。在所有的完全依靠交換去移動元素的 排序方法中,選擇排序?qū)儆诜浅:玫囊环N。2.執(zhí)行過程以對12、23、9、24、15、3、18從

5、小到大排序為例,選擇排序 的過程如下圖。根據(jù)下列圖,推演選擇排序的全部過程。笫一超排序 :, k = 0mm = 2笫一超排序 :, k = 0mm = 2第二趟排序第三趟排序第四趟排序討論如何進(jìn)行下一輪比擬呢?通過觀察分析,我們發(fā)現(xiàn)收下規(guī)律:.設(shè)第一個元素為比擬元素(其索引位置為k),依次和后面 的元素比擬,比擬完所有元素找到最小的元素(其索引位置用min 表示),將它和第一個元素互換。.重復(fù)上述操作,我們找出第二小的元素和第二個位置的元素 互換,以此類推找出剩余最小元素將它換到前面,即完成排序。.編寫選擇排序程序進(jìn)行實驗以對12、23、9、24、15、3、18從小到大排序為例,進(jìn)行選擇 排序。#首先定義一個列表s = 12, 23, 9, 24, 15, 3, 18#默認(rèn)從。下標(biāo)開始for i in range(len(s) - 1):#將每次的起始元素設(shè)為最小k = i#從列表第i+1個元素開始for j in range(i + 1), len(s):#如果當(dāng)前元素比最小元素小,那么把當(dāng)前元素索引

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論