您当前的位置: 首页 >  排序算法

刘一哥GIS

暂无认证

  • 2浏览

    0关注

    934博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

VB实现6大排序算法---动态过程展示(建议收藏)

刘一哥GIS 发布时间:2021-06-25 01:03:55 ,浏览量:2

VB实现6大排序算法:插入排序、基数排序、快速排序、希尔排序、选择排序、归并排序。可以随机生成指定个数的数据,显示排序过程,给出排序结果,计算排序算法消耗的时间。

生成随机数:

在这里插入图片描述

排序结果:

在这里插入图片描述 插入排序:

在这里插入图片描述

选择排序:

在这里插入图片描述

归并排序:

在这里插入图片描述 快速排序:

在这里插入图片描述 希尔排序:

在这里插入图片描述 基数排序:

在这里插入图片描述 核心代码

VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "Sort"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Private Num As Long
Private Aux() As Integer
Private R() As Integer
Private Sub Class_Initialize()
Num = 0
End Sub
Public Property Let SetNum(ByVal NumberOfData As Long)
    Num = NumberOfData - 1
    ReDim Aux(NumberOfData)
End Property
Public Property Let SetRArray(ByRef RArray() As Integer)
    R = RArray
End Property
Public Sub selectSort(L() As Integer)
Dim i As Long
Dim j As Long
Dim m As Long
Dim t As Integer
For i = 0 To Num
    m = i
    t = L(i)
    For j = i + 1 To Num
        If t > L(j) Then
            t = L(j)
            m = j
        End If
    Next j
    If m  j Then
        t = L(i)
        L(i) = L(m)
        L(m) = t
    End If
Next i
End Sub
Sub Merge(ByRef A() As Integer, ByVal Left As Long, ByVal m As Long, ByVal Right As Long)
Dim i As Long
Dim j As Long
Dim k As Long
i = m + 1
While i > Left
    Aux(i - 1) = A(i - 1)
    i = i - 1
Wend
For j = m To Right - 1
    Aux(Right + m - j) = A(j + 1)
Next j
For k = Left To Right
    If Aux(j)             
关注
打赏
1665586602
查看更多评论
0.0512s