选考VB算法专题系列讲座9插入排序算法

Posted Python算法之旅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了选考VB算法专题系列讲座9插入排序算法相关的知识,希望对你有一定的参考价值。

视频内容:

系统讲解了插入排序的算法思想、代码实现和变例优化,深入浅出、环环相扣,把深奥的算法通过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算法专题系列讲座9插入排序算法的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序算法导学案

桶排序和索引排序算法导学案

插入排序算法及其变例分析

排序专题-插入排序

排序算法专题之插入排序

排序算法专题之希尔排序