日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

上标3下标6算法_插入排序算法导学案

發布時間:2025/4/5 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 上标3下标6算法_插入排序算法导学案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文為“選考VB算法專題系列講座9插入排序算法”視頻配套的導學案,請同學們先完成導學案再收看視頻。明天將推送“選考VB算法專題系列講座9插入排序算法”視頻,敬請期待!

插入排序算法導學案

一題目1.?某程序代碼如下:Const size = 20 '數組分配空間Dim a(1 To size) As IntegerDim i As Integer, n As Integer '數組實際長度Private Sub Command1_Click() Dim p As Integer, x As Integer x = Val(Text3.Text) '插入數據 p = Val(Text4.Text) '插入位置 If p > n Then p = n + 1 For i = n To p Step -1 a(i + 1) = a(i) Next i a(p) = x n = n + 1End Sub已知原數組長度n=5,其元素值依次為“48,36,24,97,77”?,先在文本框Text3和Text4中分別輸入3和4,點擊按鈕Command1后,數組的元素值依次為??????????????????? ;再在文本框Text3和Text4中分別輸入8和9,點擊按鈕Command1后,數組的元素值依次為??????????????????? 。2.?已知原數組長度n=5,其元素值依次為“4,6,7,9,12”?,要求插入新元素x=5以后,數組仍保持升序排列。下面的代碼能實現前述功能,請將缺失的代碼補充完整。Const size = 20 '數組分配空間Dim a(1 To size) As IntegerDim i As Integer, n As Integer '數組實際長度Private Sub Command2_Click() Dim p As Integer, x As Integer x = Val(Text3.Text) '插入數據 For p = 1 To n If a(p) > x Then ① Next p For i = n To p Step -1 a(i + 1) = ② Next i a(p) = ③ n = n + 1End Sub上述代碼設置了2個For循環結構,第一個For循環通過比較a(p)與x的值來定位插入位置p(p指向第一個大于x的元素下標或n+1),第二個For循環通過移位操作將x插入到p位置處。能否把比較和移位操作放到同一個For循環里?如果可以,該如何實現?3.?對存放原始數據的數組,從第2個元素開始,掃描左側的已排序區間,依次將待排序元素插入到正確位置。每趟處理一個元素,總共排序n-1趟。這種排序方式成為插入排序。下面的代碼能夠實現插入排序算法,請將缺失的代碼補充完整。Const n = 10Dim a(1 To n) As IntegerPrivate Sub Command3_Click() Dim x As Integer For i = 2 To n x = a(i) For j = i - 1 To 1 Step -1 If a(j) <= x Then ① a(j + 1) = ② Next j a(j + 1) = ③ Next iEnd Sub4.對存放原始數據的數組,從a(2)開始,掃描左側的已排序區間,依次將待排序元素插入到正確位置。每趟處理一個元素,總共排序n-1趟。這種排序方式成為插入排序。下面的代碼能夠實現插入排序算法,請將缺失的代碼補充完整。Const n = 10Dim a(0 To n) As IntegerPrivate Sub Command5_Click() For i = 2 To n a(0) = a(i): j = i - 1 Do While ① a(j + 1) = ② j = j - 1 Loop a(j + 1) = ③ Next iEnd Sub5.下面的代碼希望能夠實現插入排序算法,但當數組a(1)到a(10)的值依次為3,1,2,5時,程序運行系統報錯,錯在哪里?如何改進?Const n = 4Dim a(1 To n) As IntegerPrivate Sub Command4_Click() Dim x As Integer For i = 2 To n x = a(i): j = i - 1 Do While j >= 1 And x < a(j) a(j + 1) = a(j) j = j - 1 Loop a(j + 1) = x Next iEnd Sub6.?某程序代碼如下:Const n = 5Dim a(1 To n) As IntegerPrivate Sub Command6_Click() Dim t As Integer For i = 2 To n For j = i To 2 Step -1 If a(j - 1) > a(j) Then t = a(j): a(j) = a(j - 1): a(j - 1) = t Else Exit For End If Next j Next iEnd Sub(1)若排序前數組元素a(1)到a(5)分別是“3,6,8,5,2”,則單擊按鈕Command1后,數組元素a(1)到a(5)分別是?????????????????? 。(2)題目代碼采用了雙重For循環嵌套結構,你能否將內層循環改成do循環結構。(3)上述代碼看上去和冒泡排序非常相似,但同時具備插入排序算法的某些特征,你覺得它更接近冒泡排序還是插入排序算法呢?為什么?二答案

1.?【答案】

(1)48,36,24,3,97,77?

(2)48,36,24,3,97,77,8

2.【答案】

① Exit For? ② a(i)? ③ x

參考代碼:

Private Sub Command2_Click() Dim x As Integer x = Val(Text3.Text) '插入數據 For i = n To 1 Step -1 If a(i) <= x Then Exit For a(i + 1) = a(i) Next i a(i + 1) = x n = n + 1End Sub

3.【答案】① Exit For? ② a(j)? ③ x

【解析】插入排序算法最重要的操作就是向左側已排序區間插入待排序元素。外層循環用來控制待排序元素位置,內層循環用來掃描已排序區間,為待排序元素騰出插入位置。

4.【答案】① a(0) < a(j)? ② a(j)? ③ a(0)

【解析】設置數組下標下界為0,既解決了數組下標越界問題(無需判斷j >= 1,j=0時循環自然結束),又可以使用a(0)作為輔助空間存儲a(i)的值一舉兩得。

5.【答案】程序運行,當j=0時會出現數組下標越界錯誤。解決數組下標越界問題有兩種方法:1.擴大數組下標下界;2.提前跳出循環。

方法一:擴大數組下標下界。把數組a的定義語句改成Dim a(0 To n) As Integer

方法二:提前跳出循環。當j=0時,跳出循環。參考代碼如下:

Const n = 4Dim a(1 To n) As IntegerPrivate Sub Command4_Click() Dim x As Integer For i = 2 To n x = a(i): j = i - 1 Do While x < a(j) '無需判斷j >= 1,j=0時循環結束 a(j + 1) = a(j) j = j – 1 If j = 0 Then Exit Do Loop a(j + 1) = x Next iEnd Sub

6. 【答案】(1)2, 3, 5, 6, 8

(2)參考代碼:

Const n = 5Dim a(1 To n) As IntegerPrivate Sub Command6_Click() Dim t As Integer For i = 2 To n j = i Do While a(j - 1) > a(j) t = a(j): a(j) = a(j - 1): a(j - 1) = t If j > 2 Then j = j - 1 Else Exit Do Loop Next iEnd Sub

(3)冒泡排序的本質特征是內層循環掃描待排序區間將最小值(或最大值)向左端(或右端)冒泡,交換操作只能發生在相鄰元素之間。

插入排序的本質特征是內層循環掃描已排序區間,將待排序元素插入(或交換)到正確位置。

二者的本質區別在于內層循環掃描的范圍,冒泡排序是掃描待排序區間,而插入排序是掃描已排序區間。

本題內層循環的掃描范圍的已排序區間,故更接近插入排序。

因為本題沒有設置臨時變量t來存儲待排序元素a(i),不能采用移位方式來插入a(i),所以只好采用交換相鄰元素的方式將a(i)放到正確位置,這種做法和低效的選擇排序相似,我們可以稱之為低效的插入排序算法。

需要本文word版的,可以加入“選考VB算法解析”知識星球參與討論和下載文件,“選考VB算法解析”知識星球匯集了數量眾多的同好,更多有趣的話題在這里討論,更多有用的資料在這里分享。

我們專注選考VB算法,感興趣就一起來!

相關優秀文章:

?2019年VB選考算法分析文章分類

選考VB算法專題系列講座0課程簡介

總結

以上是生活随笔為你收集整理的上标3下标6算法_插入排序算法导学案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲一区二区免费电影 | 91日韩| 大尺度av在线 | 日本三级一区二区三区 | 免费看国产曰批40分钟粉红裤头 | 麻豆视频在线观看免费网站 | 亚洲色图少妇 | 成人av久久 | 国产伦子伦对白视频 | 欧美十大老熟艳星 | 日韩欧美一区二区三区四区 | 国产成人不卡 | 在线视频精品一区 | 亚洲自拍中文字幕 | 久久不卡影院 | 欧美99热| cao久久 | 一区二区三区xxx | 爱插美女网 | 精品国产18久久久久久 | 狠狠躁天天躁综合网 | 噜噜狠狠狠狠综合久久 | 亚洲精品18 | www.伊人网| 伊人激情影院 | 色丁香六月 | 一级片av | 国产一区二区三区中文字幕 | 亚洲天堂免费观看 | 岛国不卡| 97视频在线观看免费高清完整版在线观看 | 黄色九九 | 四虎影院永久地址 | 少妇被按摩师摸高潮了 | 98堂 最新网名 | 九一在线观看免费高清视频 | 成人av在线网 | 成人在线不卡 | 性色av蜜臀av色欲av | 午夜av免费观看 | 在线免费看黄色片 | 午夜影院在线观看免费 | 天堂激情网 | 操操操操操操 | 国产网址 | 色婷婷欧美 | 呦呦av| 国产精品无码天天爽视频 | www.17c.com喷水少妇 | 欧美v视频 | 800av免费在线观看 | 日日碰狠狠添天天爽 | 欧美大片在线免费观看 | 在线精品国产 | 国产精品区在线 | 大奶子网站 | jzzjzz日本丰满少妇 | 韩国三色电费2024免费吗怎么看 | 日日碰狠狠添天天爽无码av | 免费看的黄色 | www日本黄色 | 999精品在线观看 | 欧美私人网站 | 经典三级av在线 | av黄色片 | 中文字幕一区久久 | 亚洲精品综合在线观看 | 尤物久久 | 亚洲精品鲁一鲁一区二区三区 | 中文字幕精品视频 | 国产a一区二区三区 | 中文字幕在线免费 | 国精品无码一区二区三区 | 日本高清有码视频 | 韩国美女一区二区 | 国产粉嫩在线观看 | 亚洲第一黄色网址 | 香蕉视频黄污 | www.av日韩| 亚洲欧美va天堂人熟伦 | 欧亚乱熟女一区二区在线 | 国产不卡av在线 | 极品少妇xxxx精品少妇偷拍 | 婷婷伊人 | 亚洲九色| 亚洲天天av | 99在线小视频 | 在线观看不卡的av | 99色婷婷 | 熟女肥臀白浆大屁股一区二区 | 精品久久伊人 | 亚洲精品久久久久久动漫器材一区 | 国产精品久久久一区二区三区 | 蜜桃av噜噜一区二区三区网址 | 伊人久综合 | 极品美女销魂一区二区三区 | 国产成人麻豆精品午夜在线 | 国产欧美日韩综合 | 欧美日韩成人在线播放 |