前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA: 冒泡排序法的代码实现

VBA: 冒泡排序法的代码实现

作者头像
Exploring
发布2022-09-20 14:30:42
7350
发布2022-09-20 14:30:42
举报
文章被收录于专栏:数据处理与编程实践

文章背景:冒泡排序(Bubble Sort)是排序算法里面比较简单的一个排序,在工作中用到的并不多,主要是想了解其中的算法思想,从而让我们的思维更加开阔。

基本原理:

  • 从序列头部开始遍历,两两比较,如果前者比后者大,则交换位置,直到最后将最大的数(本次排序最大的数)交换到无序序列的尾部,从而成为有序序列的一部分;
  • 下次遍历时,此前每次遍历后的最大数不再参与排序;
  • 多次重复此操作,直到序列排序完成。
  • 由于在排序的过程中总是小数往前放,大数往后放,类似于气泡逐渐向上漂浮,所以称作冒泡排序。 程序框图:(示例:一维数组,从小到大排列。)

代码实现:

代码语言:javascript
复制
Option Explicit

Sub BubbleSort()

    Dim n As Integer, temp As Double
    Dim i As Integer, j As Integer
    
    n = Selection.Rows.Count
    
    For i = 2 To n
    
        For j = 2 To n - i + 2
        
            If Selection.Cells(j - 1, 1) > Selection.Cells(j, 1) Then
            
                temp = Selection.Cells(j, 1)
                Selection.Cells(j, 1) = Selection.Cells(j - 1, 1)
                Selection.Cells(j - 1, 1) = temp
                
            End If
        
        Next
        
    Next
    
End Sub

运行效果:http://mpvideo.qpic.cn/0bf2nmaawaaagiabjhdibnqfa26dbnvqacya.f10002.mp4?dis_k=8ffa0f5de40a6d237938ebb0aa35a331&dis_t=1663655418&vid=wxv_1809326013609213954&format_id=10002&support_redirect=0&mmversion=false

参考资料:

[1] 算法之旅 | 冒泡排序法(https://zhuanlan.zhihu.com/p/28965019

[2] Excel/VBA for Creative Problem Solving, Part 1(https://www.coursera.org/learn/excel-vba-for-creative-problem-solving-part-1/lecture/trGtF/putting-it-all-together-example-2

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据处理与编程实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档