程序設(shè)計(jì)基礎(chǔ)課程材料非計(jì)算機(jī)專業(yè)-教案202課時查找與排序_第1頁
程序設(shè)計(jì)基礎(chǔ)課程材料非計(jì)算機(jī)專業(yè)-教案202課時查找與排序_第2頁
程序設(shè)計(jì)基礎(chǔ)課程材料非計(jì)算機(jī)專業(yè)-教案202課時查找與排序_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余6頁可下載查看

下載本文檔

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

文檔簡介

揚(yáng)州工 學(xué)院教序授課形授課章節(jié)名稱教學(xué)目的教學(xué)重點(diǎn)教學(xué)難點(diǎn)使用教具課外作業(yè)課后體會授課主要內(nèi)容1.15.25.2.11.5.4有一個數(shù)組a[5],其元素值及排列次序如下:4,2,8,6,1?,F(xiàn)要5個元素中選擇(找出)5-1個元素中選擇5.3所示,其中共分為三塊:①第一塊i5個數(shù)據(jù)放入數(shù)組a中,i=0~4i循環(huán),功能是按升序選擇法排序,基本方法是先選出最小值元n-1個元素重復(fù)這樣的選擇和交#include<stdio.h>int{intprintf("5個待排序的數(shù):\n");for(i=0;i<=4;i++)forfor{forif(a[j]<a[min])min=j;}for(i=0;i<=4;i++) return0;} 2.5.5若有7個數(shù):9,8,7,6,5,4,3。則用冒泡法按升序排序過程如圖5.4第一89對調(diào),第二次2個數(shù)和第3個數(shù)(97)對調(diào),第三次將第3數(shù)和第4數(shù)(96)對調(diào)……如此共進(jìn)行6次,得到8,7,6,5,4,3,9的順序,可以看到:最大的數(shù)9已“沉底”,而小的數(shù)已“上升”,最小的數(shù)3已向上“浮起”一個位置。經(jīng)第一輪(共6次)后,已得到最大的數(shù)。然后進(jìn)行第二輪較,對余下的前面的6個數(shù)按上述方法進(jìn)行比較、對調(diào)(需要時),經(jīng)過5次比較,得到次大的數(shù)8。依次類推7個數(shù)要比較6輪,才7個數(shù)按升序排序。在第一輪中要進(jìn)行兩個數(shù)之間的比較共6次,第二輪5次1次。若有n個數(shù),則要進(jìn)行n-1輪比較。1輪中要進(jìn)行n-1次兩兩比較,在第j輪比較中要進(jìn)行n-j次兩兩比較。待排序的數(shù)的個數(shù)NN=7比較輪數(shù)j,j=1,2,…,N-1第j輪待比較元素的下標(biāo)i,i=1,2,…,N-j。將待排序的數(shù)據(jù)放入數(shù)組a讓j1i1N-ja[i]a[i+1],a[i]<=a[i+1],位置不動;如果讓j=j+1;只要j!=N-1就返回第(3)步,將a[N-j+1]的值排好。當(dāng)j==N-1時執(zhí)行步驟(5)。5.5。//#include< //#defineN7 //定義符號常量Nintmain(){inta[N+1];//N+1,本題中為符合人們的習(xí)慣,a[0]不//只用a[1]到intprintf("輸入待排序的數(shù)組元素for(i=1;i<=N;i++) forj=1;j<=N- //{fori=1;i<=N- //{if( //如果 //讓a[i]和a[i+1]}}}printf("輸出排序后的數(shù)組元素for(i=1;i<=N;i++) printf("%d",a[i]);return} 5.2.2a[1]a[2]a[9]。線性查找法不要求作的數(shù)組是否5.6設(shè)有一個數(shù)組a[10],x#include<stdio.h>intmain(){intintx,i,flag=0;printf("noreturn}x,從序列xx小于當(dāng)x大于當(dāng)前位置值,則在序 要查找給定值x=24這個數(shù)??稍O(shè)三個變量front,mid,end分別指向數(shù)列的上界、開始時令front=0(指向3),end=7(指向88,則mid=3(指向36,若(”和“ 此時a[mid]=36,x<a[mid],故確定 令新的end=mid-1=2,而front=0不變,則新的mid=1, 此時a[mid]=1,x>a[mid]令新的front=mid+1=2,而end=2不變,則新的mid=2 此時x=a[mid]=2如果要找的數(shù)x不是數(shù)列中的數(shù),例如x=25,當(dāng)?shù)谌闻袛鄷r,x>a[mid],front=mid+1,即front=3front>end的情況,表示查找不5.7N個元素的a數(shù)組中是否存在用戶輸入的數(shù)據(jù)x。確定查找范圍front=0,end=N-1。計(jì)算中項(xiàng)mid=(front+end)/2若a[mid]=x或front≥end若a[mid]<x把mid+1的值賦給front,并重新計(jì)算mid,轉(zhuǎn)去執(zhí)行步驟(2);若a[mid]>x,說明mid-1的值賦給end重新計(jì)算mid,轉(zhuǎn)去執(zhí)行步驟(2)。5.6//主要功能:在一個已排好序的有N#include<stdio.h>#defineN8int{intintprintf("請輸入已排好序的a數(shù)組元素fori=0;i<=N- //給a{}printf("請輸入待查找的數(shù)x front=0;end=N- // while(front<end&&a[mid]!=x){if(a[mid]<x)front=mid+1; if(a[mid]>x)end=mid-1; }if

溫馨提示

  • 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

提交評論