| 网站首页 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛 |
 
 
 
您现在的位置: 编程中国 >> 技术教程 >> .NET技术 >> VB.NET >> VB.NET教程 >> 正文
  ►  VB.NET 入门教程
VB.NET 入门教程
作者:未知    阅读人次:……    文章来源:microsoft    发布时间:2004-9-27    网友评论()条
 
 

步骤 7. 创建函数

最后一步就是创建一个函数来在字符串数组中运行 QuickSort。我们将此函数放到应用程序类 QuickSortApp 之中。

修改源代码

更改 Visual Basic 源文件 (module1.vb),如下面以斜体突出显示的 代码所示。其他的差异(如类名)可忽略不计。

' Import namespaces
Imports System
Imports System.Collections
Imports System.IO
Module Module1
    Sub Main()
        ... ... ...
        ' Pass to QuickSort function
        QuickSort(szContents, 0, szContents.Count - 1)
        ... ... ...
    End Sub
    ' QuickSort implementation
    Sub QuickSort(ByRef szArray As ArrayList, ByVal nLower As Integer, _
        ByVal nUpper As Integer)
        ' Check for non-base case
        If nLower < nUpper Then
            ' Split and sort partitions
            Dim nSplit As Integer
            nSplit = Partition(szArray, nLower, nUpper)
            QuickSort(szArray, nLower, nSplit - 1)
            QuickSort(szArray, nSplit + 1, nUpper)
        End If
    End Sub
    ' QuickSort partition implementation
    Function Partition(ByRef szArray As ArrayList, _
        ByVal nLower As Integer, ByVal nUpper As Integer) As Integer
        ' Pivot with first element
        Dim szPivot As String
        Dim nLeft, nRight As Integer
        nLeft = nLower + 1
        szPivot = szArray(nLower)
        nRight = nUpper
        ' Partition array elements
        Dim szSwap As String
        While nLeft <= nRight
            ' Find item out of place
            While nLeft <= nRight
                If szArray(nLeft).CompareTo(szPivot) > 0 Then Exit While
                nLeft = nLeft + 1
            End While
            While nLeft <= nRight
                If szArray(nRight).CompareTo(szPivot) <= 0 Then Exit While
                nRight = nRight – 1
            End While
            ' Swap values if necessary
            If (nLeft < nRight) Then
                szSwap = szArray(nLeft)
                szArray(nLeft) = szArray(nRight)
                szArray(nRight) = szSwap
                nLeft = nLeft + 1
                nRight = nRight – 1
            End If
        End While
        ' Move pivot element
        szSwap = szArray(nLower)
        szArray(nLower) = szArray(nRight)
        szArray(nRight) = szSwap
        Return nRight
    End Function
End Module 

QuickSort() 函数

这个函数需要三个参数:对数组的引用、下界和上界。它调用 Partition() 函数来将数组分成两部分,其中一部分包含 Pivot 值之前的所有字符串,另一部分包含 Pivot 值之后的所有字符串。然后,它调用自身来对每个部分进行排序。

上面修改中的注释应该说明了每个代码块的作用。唯一的新概念就是 CompareTo() 方法的使用,该方法是 String 类的成员,并且应该是自说明的。

运行 QuickSort 应用程序

这一步完成 QuickSort Visual Basic .NET 示例应用程序。现在,可以构建项目并运行应用程序。需要提供一个示例文本文件,以供其进行排序。将该文件放在与 EXE 文件相同的目录中。


程序输出

下面是已完成的 QuickSort Visual Basic .NET 示例应用程序的输出。您可以查看示例输入文件 'example.txt' 和输出文件 'output.txt'。


 

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页

 

 
文章录入:静夜思    责任编辑:静夜思 
  • 上一篇文章: 没有了

  • 下一篇文章:

  •  
    相关文章
    没有相关文章
    原创地带
    24小时热门帖子