2015-11-27 4 views
0

Во-первых, я должен признать, что я начинаю на VB.net. У меня есть этот код, который должен сортировать массив в порядке возрастания. Во-первых, он будет запрашивать размер массива, а затем вставить данные. Но я сталкиваюсь с проблемой, чтобы заставить ее работать. Могут ли мне помочь мне в этом? Ниже приводится мой код:Как отсортировать массив VB.net в ASC

Module Module1 
    Sub Main() 

     Dim A(20) As Integer 
     Dim num, i, j, k, arr, temp As Integer 

     Console.Write("enter size num:") 
     Dim add = Console.ReadLine 

     If Integer.TryParse(add, num) Then 
      'Console.WriteLine("valid. num = " & num) 
      For i = 0 To num - 1 
       Console.Write("enter num:") 
       A(i) = Console.ReadLine 

      Next i 

      For i = 0 To num - 1 
       For j = i + 1 To num - j 
        If A(i) > A(j) Then 
         temp = A(i) 
         A(i) = A(j) 
         A(j) = temp 
        End If 
       Next j 
       Console.Write(A(i)) 
      Next i 
     Else 
      Console.WriteLine("Invalid.Data is not number") 
     End If 
     Console.ReadLine() 
    End Sub 
End Module 

Спасибо, и любая помощь будет очень признательна.

+0

_ «Я сталкиваюсь с проблемой, чтобы заставить ее работать» _ в чем была проблема? Однако это просто, как 'Array.Sort (A)' –

+0

@TimSchmelter. Я до сих пор не могу сортировать его по возрастанию. Когда я запустил код, он отобразит список массива, но не в порядке возрастания. – art

+0

Пожалуйста, покажите новый код, содержащий Array.Sort (A), который все еще не работает. –

ответ

0

Вы не указали свою проблему. Однако, в общем сортировке Int32() очень просто, вы можете использовать Array.Sort:

Array.Sort(A) ' finished ' 
+0

Возможно ли, что я могу сортировать то же, что и мой код? Btw thanks – art

+0

@art: У меня нет времени для дальнейшего изучения вашего алгоритма. Но в продуктовом коде используется 'Array.Sort', он намного яснее, безопаснее и эффективнее. –

2

Непосредственная причина вашей проблемы в том, что ваш

Console.Write(A(i)) 

в настоящее время вызывается до завершения операции сортировки. Вторая проблема заключается в том, что вы не проверяете введенные числа, и вам действительно нужно указать Option Strict On в верхней части кода и очистить полученные ошибки компиляции.

Если вы пишете это как упражнение, это нормально, но для производственных целей вы должны предпочесть метод Тима Шмельтера.

+0

Ха! Да, я должен был это видеть. –