视频内容:
系统讲解了插入排序的算法思想、代码实现和变例优化,深入浅出、环环相扣,把深奥的算法通过Excel操作、程序演示和代码分析等方式多角度呈现,娓娓道来。本次讲座的亮点是解决插入排序算法的下标越界问题,以及希尔排序算法原理和代码实现,值得一看。
视频勘误:
插入排序的算法思想比较简单,但要求学生熟练掌握数组基本操作,理解如何将一个新元素x插入到有序数组中。由于我在讲解时花了很多时间来回顾数组的基本操作,导致讲解的节奏比较慢,显得有些枯燥了。到了后面又有些急躁,声音变小了,口误也比较多。另外在制作PPT时不够仔细,好几个地方都把“插入排序”写成了“选择排序”,在此表示歉意。 如果你发现更多错误,请及时联系我,以便完善勘误表。 1. 时间00:34:55 勘误内容:PPT显示内容错误,修改如下图:课后练习:
1. 对10个数据进行插入排序,需要比较的次数不可能是( )
A. 9 B. 10 C. 45 D.8
2. 略
3.略
4.使用插入排序算法对数组排序,要求奇数和偶数各自按升序排序,其中奇数在前,偶数在后。例如将数组a = (4,5,2,9,6,7,10,3,8,1),排序成a = (1,3,5,7,9,2,4,6,8,10)。
实现上述功能的VB程序如下,请将缺失的代码补充完整。
Const n = 10
Dim a(0 To n) As String
Dim i As Integer, j As Integer, mid As Integer
Private Sub Command14_Click()
mid = 1 'mid指向第一个已排序偶数的下标
For i = 1 To n '因为不知道第一个数的奇偶性,故从第1个元素开始
a(0) = a(i): j = i - 1
If a(0) Mod 2 = 1 Then 'a(0)是奇数,则将偶数和大于a(0)的奇数都右移
Do While ①
a(j + 1) = a(j)
j = j - 1
Loop
mid = ②
Else 'a(0)是偶数,则将大于a(0)的偶数右移
Do While ③
a(j + 1) = a(j)
j = j - 1
Loop
End If
a(j + 1) = ④
Next i
End Sub
除了题目提供的代码,你还能写出其他代码实现相同功能吗?
5.略
6. 略
温馨提示: 《插入排序算法课后练习及答案解析》(完整版)将以付费文章形式于明天在本公众号推出。原创不易,推出付费文章也是尊重个人劳动成果的一种尝试,希望大家多多支持和谅解。 需要本视频(包括往期所有视频)对应PPT和课后练习(完整版含答案)word版本的朋友,请加入“选考VB算法解析”知识星球。众多师生聚集在星球讨论、分享VB算法问题和复习迎考方法,大量选考VB算法资料等你来下载。 我们专注选考VB算法,感兴趣就一起来!相关优秀文章:
选考VB算法专题系列讲座0课程简介
选考VB算法专题系列讲座1循环结构基础
选考VB算法专题系列讲座2数组基本操作
选考VB算法专题系列讲座3字符串基本操作
选考VB算法专题系列讲座4解析算法
选考VB算法专题系列讲座5枚举算法
选考VB算法专题系列讲座6顺序查找算法
选考VB算法专题系列讲座7选择排序算法
选考VB算法专题系列讲座8冒泡排序算法