大橙子网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

vb.net选择排序法 vbs排序函数

VB中如何给指定的数组排序??

Private Sub Command4_Click()

成都网络公司-成都网站建设公司成都创新互联10多年经验成就非凡,专业从事成都做网站、网站制作,成都网页设计,成都网页制作,软文推广广告投放平台等。10多年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:028-86922220,我们期待您的来电!

Dim t As clerk, i%, j%

For i = 0 To n - 1

  For j = i To n - 2

      If a(i).vc a(j + 1).vc Then

          t = a(i): a(i) = a(j + 1): a(j + 1) = t

      End If

  Next j

Next i

Picture2.Cls

Picture2.Print "学号          姓名           VC            VB"

Picture2.Print "---------------------------------------------"

For i = 0 To n - 1

  Picture2.Print a(i).number, a(i).name, a(i).vc, a(i).vb

  Print

Next i

End Sub

扩展资料

vb数组排序思路:

1、冒泡排序法:

位置相邻两数进行两两比较,在比较时如果发现前面的数比后面的数大,则进行交换,都比较完一轮后,把最大一个数放到最后,如此进行下去即可完成冒泡排序。

2、比较交换法

假设第一个数最小,然后第一个数依次与后面的每个数都进行比较, 若比较时发现后面的数比第一个数小, 则两数位置进行交换, 全部都比较完算一轮,每一轮比较完后,第一个数是最小的数,如此进行即可完成比较排序。

3、选择排序

假设第一个数最小,接着记下最小数所在的位置,然后将最小数依次与后面的每一个数都进行比较,若比较时发现后面的数比最小的数还小,则修改最小数所在位置,全部都比较完算一轮。

每一轮比较完后,最小数所在的位置是否跟假设的是同一个位置,若不是,则最小数与第一个数进行交换位置,如此进行即可完成选择排序。

VB.NET数组的排序法?

如果你是从vb6刚过渡上vb。net,建议还是用冒泡排序法,容易理解。

如果你正努力学习vb。net的方法,推荐一个例子如下:

Imports System

Imports System.Collections

Public Class SamplesArray

Public Class myReverserClass

Implements IComparer

' Calls CaseInsensitiveComparer.Compare with the parameters reversed.

Function Compare(x As Object, y As Object) As Integer _

Implements IComparer.Compare

Return New CaseInsensitiveComparer().Compare(y, x)

End Function 'IComparer.Compare

End Class 'myReverserClass

Public Shared Sub Main()

' Creates and initializes a new Array and a new custom comparer.

Dim myArr As [String]() = {"The", "QUICK", "BROWN", "FOX", "jumps", "over", "the", "lazy", "dog"}

Dim myComparer = New myReverserClass()

' Displays the values of the Array.

Console.WriteLine("The Array initially contains the following values:")

PrintIndexAndValues(myArr)

' Sorts a section of the Array using the default comparer.

Array.Sort(myArr, 1, 3)

Console.WriteLine("After sorting a section of the Array using the default comparer:")

PrintIndexAndValues(myArr)

' Sorts a section of the Array using the reverse case-insensitive comparer.

Array.Sort(myArr, 1, 3, myComparer)

Console.WriteLine("After sorting a section of the Array using the reverse case-insensitive comparer:")

PrintIndexAndValues(myArr)

' Sorts the entire Array using the default comparer.

Array.Sort(myArr)

Console.WriteLine("After sorting the entire Array using the default comparer:")

PrintIndexAndValues(myArr)

' Sorts the entire Array using the reverse case-insensitive comparer.

Array.Sort(myArr, myComparer)

Console.WriteLine("After sorting the entire Array using the reverse case-insensitive comparer:")

PrintIndexAndValues(myArr)

End Sub 'Main

Public Shared Sub PrintIndexAndValues(myArr() As [String])

Dim i As Integer

For i = 0 To myArr.Length - 1

Console.WriteLine(" [{0}] : {1}", i, myArr(i))

Next i

Console.WriteLine()

End Sub 'PrintIndexAndValues

End Class 'SamplesArray

'This code produces the following output.

'

'The Array initially contains the following values:

' [0] : The

' [1] : QUICK

' [2] : BROWN

' [3] : FOX

' [4] : jumps

' [5] : over

' [6] : the

' [7] : lazy

' [8] : dog

'

'After sorting a section of the Array using the default comparer:

' [0] : The

' [1] : BROWN

' [2] : FOX

' [3] : QUICK

' [4] : jumps

' [5] : over

' [6] : the

' [7] : lazy

' [8] : dog

'

'After sorting a section of the Array using the reverse case-insensitive comparer:

' [0] : The

' [1] : QUICK

' [2] : FOX

' [3] : BROWN

' [4] : jumps

' [5] : over

' [6] : the

' [7] : lazy

' [8] : dog

'

'After sorting the entire Array using the default comparer:

' [0] : BROWN

' [1] : dog

' [2] : FOX

' [3] : jumps

' [4] : lazy

' [5] : over

' [6] : QUICK

' [7] : the

' [8] : The

'

'After sorting the entire Array using the reverse case-insensitive comparer:

' [0] : the

' [1] : The

' [2] : QUICK

' [3] : over

' [4] : lazy

' [5] : jumps

' [6] : FOX

' [7] : dog

' [8] : BROWN

VB高手解释选择排序排序

选择排序的过程:对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量k来记住他的位置,接着第二次比较,前面“后一个元素”现变成了“前一个元素”,继续跟他的“后一个元素”进行比较如果后面的元素比他要小则用变量k记住它在数组中的位置(下标),等到循环结束的时候,我们应该找到了最小的那个数的下标了,然后进行判断,如果这个元素的下标不是第一个元素的下标,就让第一个元素跟他交换一下值,这样就找到整个数组中最小的数了。然后找到数组中第二小的数,让他跟数组中第二个元素交换一下值,以此类推。

冒泡排序的过程:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

你给出的代码属于选择排序,For i=1 to 9是因为数组a只包含10个元素,按选择排序的要求,需要将数组前9个元素分别与后面的元素(从i+1起,直到10为止)比较大小;p=i的作用为把a(i)视为最小元素,记录a(i)的数组下标;p=j的作用为当a(j)比a(p)小时,记录a(j)的数组下标,p=j记录的是每一轮选择排序过程的最小值的数组下标。

选择排序和冒泡排序的排序过程对比(从小到大):

选择排序(10个元素)----------- 冒泡排序(10个元素)

For i = 1 To 9 ------------------ For i = 9 To 1 Step -1

p = i

For j = i + 1 To 10 ------------- For j = 1 To i

If a(p) a(j) Then p = j ------- If a(j) a(j+1) Then 'j=i时,a(j+1)为每一轮的最大值

------------------------------------- temp = a(j + 1)

------------------------------------- a(j + 1) = a(j)

------------------------------------- a(j) = temp

------------------------------------ End If

Next j -------------------------- Next j

temp = a(i)

a(i) = a(j)

a(j) = temp

Next i -------------------------- Next i

VB选择法排序

Private Sub Command1_Click()

Dim a(1 To 10) As Integer

For i = 1 To 10

a(i) = Int(Rnd * 10)

Print a(i);

Next i

Print

'以上十随机得出10个数

For i = 1 To 9 '这里开始是双重循环

For j = i + 1 To 10

If a(i) a(j) Then '如果前一个数大于后一个数则交换位置

t = a(i): a(i) = a(j): a(j) = t

End If

Next j

Print a(i);

Next i

Print a(i);

End Sub

I等于1时 就是拿第一位和第二位比较 比较大的的数排后面 然后比较第一位和第三位 For j = i + 1

To 10 直到比较到最后一位

i=2 时也是如此 循环9次就完成排序

5 3 2 7

i=1 时

J=2时 3 5 2 7

J=3时 2 5 3 7

j=4时 2 5 3 7

I=2时

j=3时 2 3 5 7

扩展资料

Private Sub Command1_Click()

Dim a(10) As Integer

Dim b As Integer

Dim i As Integer

Dim j As Integer

Dim k As Integer

For i = 1 To 10

a(i) = Int(Rnd * 90 + 10)

Print a(i);

Next i

Print

For i = 1 To 9

k = i

For j = k + 1 To 10

If a(j)  a(k) Then k = j

Next j

If a(i)  a(k) Then

b = a(i)

a(i) = a(k)

a(k) = b

End If

Next i

For i = 1 To 10

Print a(i);

Next i

Print

End Sub

参考资料:百度百科 - 选择法排序


当前文章:vb.net选择排序法 vbs排序函数
文章URL:http://dzwzjz.com/article/docddpi.html
在线咨询
服务热线
服务热线:028-86922220
TOP