《高中信息技術 2、選擇排序課件 浙教版》由會員分享,可在線閱讀,更多相關《高中信息技術 2、選擇排序課件 浙教版(12頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、一 、 復 習n 1、 冒 泡 排 序 思 路 :小 元 素 從 根 部 逐 次 向 上 浮 動n 2、 冒 泡 排 序 程 序 設 計 要 點 : ( 1) 基 本 形 : n For i = 1 To n-1n For j = n To i + 1 Step -1n If d(j) d(j - 1) Thenn t = p(i):p(i) = p(i - 1):p(i - 1) = t n End If n Next jn Next i 規(guī) 律 : 從 根 部 向 上 冒 泡 , 先 冒 出 最 小 , 連 續(xù) 雙循 環(huán) , 雙 循 環(huán) 變 量 值 對 角 加 一 , 循 環(huán) 體 數(shù) 值
2、交 換 2、 冒 泡 排 序 程 序 設 計 要 點n ( 2) 冒 泡 排 序 程 序 的 小 小 變 形 :n For j =2 to nn For i = n To j Step -1n If p(i) d(j) then k=jNext jIf k不 等 于 1時 , 交 換 d(1)和 d(k) 交 換 d(1)與 d(4) 第 2遍 選 擇18363227d (1) d (2) d (3) d (4) j=3k=2 18363227 j=3k=j 18363227 j=4k=j j=418363227 k=j 18273236 k=2For j=3 to 4 if d(k)d(j)
3、 then k=jNext jIf k2 then 交 換 d(2)和 d(k) 第 3遍 選 擇18273236d (1) d (2) d (3) d (4) j=4k=3 k=3For j=4 to 4 if d(k)d(j) then k=jNext jIf k3 then 交 換 d(3)和 d(k) 四 、 算 法 分 析n 第 1遍 選 擇 , j從 2開 始 到 4k=1For j=2 to 4 if d(k)d(j) then k=jNext jIf k1, 交 換 d(1)和 d(k)k=2For j=3 to 4 if d(k)d(j) then k=jNext j If
4、k2 then 交 換 d(2)和 d(k)n 第 2遍 選 擇 , j從 3開 始 到 4 n 第 3遍 選 擇 , j從 4開 始 到 4k=3For j=4 to 4 if d(k)d(j) then k=jNext jIf k3 then 交 換 d(3)和 d(k) 用 i來 表 示 次 數(shù)的 變 化For i=1 to 3 K=i 因 為 循 環(huán) 變 量 的 值 在 循 環(huán) 體 內(nèi) 不 能 隨 意 改 變For j=i +1 to 4 五 、 程 序 實 現(xiàn) For i = 1 To n- 1 選 擇 第 i個 作 為 最 小 的 數(shù) k = i For j = i + 1 To
5、n 如 果 找 到 更 小 的 , 用 k記 住 它 的 編 號 If d(k) d(j) Then k = j 注 意 : d(k)與 d(j)比 較 Next j特 點 : 平 行 加 一 , 下 標 跟 隨 , 數(shù) 值 交 換 , 小 數(shù) 上 冒 。 選 擇 排 序 基 本 形If k i Then 如 果 最 小 的 數(shù) 所 在 的 位 置 不 是 i, 則 交 換 t = d(i) d(i) = d(k) d(k) =t 注 意 : d(k)與 d(i)交 換 End IfNext i 六 、 選 擇 排 序 和 冒 泡 排 序 的 比 較交 換 次 數(shù) 循 環(huán) 比 較 次 數(shù)冒 泡
6、 =(n-1)*n/2 (n-1)+3+2+1選 擇 =n-1 (n-1)+3+2+1以 n個 數(shù) 據(jù) 為 例 :(運 行 比 較 程 序 )冒 泡 : 從 根 部 向 上 冒 泡 , 逐 個 交 換 , 先 冒 出 最 小 ,升 序 排 序 。選 擇 : 從 頂 部 向 下 找 較 小 數(shù) 的 下 標 , 找 到 最 小 的 數(shù)再 交 換 至 前 , 升 序 排 序 。選 擇 排 序 是 冒 泡 排 序 的 改 進 。 七 、 選 擇 排 序 的 變 形For i= n To 2 Step -1 Max = i 選 擇 第 i個 作 為 最 大 的 數(shù) For j = 1 To i-1 如 果 找 到 更 大 的 , 用 max記 住 它 的 編 號 If d(Max) d(j) Then Max = j d(min)與 d(j)比 較 Next j If Max i Then 如 果 最 大 的 數(shù) 所 在 的 位 置 不 是 i, 則 交 換 k = d(i) d(i) = d(Max) d(Max) = k d(max)與 d(i)交 換 End IfNext I 特 點 : 對 角 減 一 , 下 標 跟 隨 , 數(shù) 值 交 換 , 大 數(shù) 下 沉 。 八 、 復 習 題 解n 高 考 倒 計 時P70例 4、 P74例 11、 P77第 5題