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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論