选择法排序vb.net 选择法排序c语言程序pta

VB高手解释选择排序排序选择排序选择法排序vb.net的过程:对比数组中前一个元素跟后一个元素的大?。?如果后面的元素比前面的元素小则用一个变量k来记住他的位置,接着第二次比较,前面“后一个元素”现变成了“前一个元素”,继续跟他的“后一个元素”进行比较如果后面的元素比他要小则用变量k记住它在数组中的位置(下标) , 等到循环结束的时候,我们应该找到了最小的那个数的下标了,然后进行判断,如果这个元素的下标不是第一个元素的下标,就让第一个元素跟他交换一下值,这样就找到整个数组中最小的数了 。然后找到数组中第二小的数,让他跟数组中第二个元素交换一下值,以此类推 。
冒泡排序的过程:比较相邻的元素 。如果第一个比第二个大,就交换他们两个 。对每一对相邻元素作同样的工作 , 从开始第一对到结尾的最后一对 。在这一点,最后的元素应该会是最大的数 。针对所有的元素重复以上的步骤,除了最后一个 。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 。
选择法排序vb.net你给出的代码属于选择排序 , For i=1 to 9是因为数组a只包含10个元素,按选择排序的要求,需要将数组前9个元素分别与后面的元素(从i 1起,直到10为止)比较大小选择法排序vb.net;p=i的作用为把a(i)视为最小元素,记录a(i)的数组下标选择法排序vb.net;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 = i1 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(j1)
------------------------------------- a(j1) = 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 Command4_Click()
Dim t As clerk, i%, j%
For i = 0 To n - 1
For j = i To n - 2
If a(i).vca(j1).vc Then
t = a(i): a(i) = a(j1): a(j1) = t
End If
Next j
Next i
Picture2.Cls
Picture2.Print "学号姓名VCVB"
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选择法排序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 = i1 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 = i1
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 * 9010)
【选择法排序vb.net 选择法排序c语言程序pta】Print a(i);
Next i
Print
For i = 1 To 9
k = i
For j = k1 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数组的排序法?如果选择法排序vb.net你是从vb6刚过渡上vb 。net选择法排序vb.net,建议还是用冒泡排序法,容易理解 。
如果你正努力学习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中“随机产生10个数,用选择法对10个数进行从小到大排序”要怎么做啊Dim arr(0 To 9) As Integer
Private Sub Form_Load()
Dim i, j, k
Randomize
For i = 0 To 9
arr(i) = Int(Rnd * 100)
Debug.Print arr(i);
Next i
Debug.Print
For i = 0 To 9
k = i
For j = i1 To 9
If arr(k)arr(j) Then k = j
Next j
If ki Then
t = arr(k): arr(k) = arr(i): arr(i) = t
End If
Debug.Print arr(i);
Next i
Debug.Print
End Sub
Good luck
选择法排序vb.net的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于选择法排序c语言程序pta、选择法排序vb.net的信息别忘了在本站进行查找喔 。

    推荐阅读