分享

VBA数组之插入排序算法

 F2967527 2023-04-10 发布于北京

插入排序的思想是:将初始数据分为有序部分和无序部分,每一步将一个无序部分的数据插入到前面已经排好序的有序部分中,直到插完所有元素为止。

  插入排序的步骤如下:每次从无序部分中取出一个元素,与有序部分中的元素从后向前依次进行比较,并找到合适的位置,将该元素插到有序组当中。
我们来看看插入排序的图解思路:

图片

图片

来看看VBA代码吧

图片

Sub InsertSort() Dim i, j, temp, arr(1 To 10) For i = 1 To 10 arr(i) = Int(Rnd * 100 + 1) Next i Debug.Print 'Original Data: ' & Join(arr, ',') '输出原始数据 For i = 2 To 10 '循环整个数组 For j = i - 1 To 1 Step -1 '从第一项循环到第 i -1 项,用第i 项去对比,符合条件则插入 If arr(j + 1) < arr(j) Then temp = arr(j + 1) arr(j + 1) = arr(j) arr(j) = temp If j > 1 Then If arr(j - 1) < arr(j) Then Exit For End If End If Next j Next i Debug.Print 'After Sort: ' & Join(arr, ',') '输出排序后的数据
结果输出:
Original Data: 53,77,6,60,47,30,63,65,27,28After Sort: 6,27,28,30,47,53,60,63,65,77

图片

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多