简单选择排序

基本原理:

  1. 是从数组索引0的位置开始,与数组其它索引进行比较。如果比我小,则我们两个交换位置。
  2. 然后,从1开始做类似的操作。
  3. 不是稳定的排序,因为有相同数字时,例如{(2),7,【2】,1},(2)会和1交换位置,导致(2)与【2】的索引顺序发生了变化。

具体实现步骤:

  1. 定义用于交换数组元素的方法:
1 Private Sub swap(ByVal array() as Short,ByVal a as Short,ByVal b as Short)
2     array(a) = array(a) Xor array(b)
3     array(b) = array(a) Xor array(b)
4     array(a) = array(a) Xor array(b)
5 End Sub

  2. 外层循环控制逐个取出数字i,最后一位不必要

       3.内层循环控制让取出的数字i同数组中其它数字进行比较j = i+1 ; j++

  4.得到最小数字的索引min,并交换位置

 1 Private Sub sort(ByVal array() as Short)
 2     Dim i,j as Short
 3     Dim min as Short
 4     For i=0 To array.Length - 2
 5         min = i
 6         For j = i + 1 To Length - 1
 7             If(array(j) < array(min)) Then
 8                 min = j
 9             End If
10         Next
11         If min <> i Then
12             swap(array,i,min)
13         End If
14     Next
15 End Sub 

 

posted @ 2018-07-18 11:06  剑诀浮云  阅读(113)  评论(0编辑  收藏  举报