Advertisement
mabu

Сортировка по квадратам соседних пар

Aug 27th, 2015
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Public Module Main
  2.    
  3.     Public Function Main(ByVal Args() As String)As Integer
  4.         ' Индекс элемента
  5.         Dim i As Integer
  6.         ' Отсортировать список
  7.         Dim q As New LinkedList(Of Integer)(Enumerable.Range(1, 17))
  8.         ' Квадраты 4 9 16 25
  9.         Dim f = Enumerable.Range(2, 4).Select(Function (x As Integer) x * x).ToArray
  10.         ' Количество ложных совпадений
  11.         Dim FalseCount As Integer
  12.         Do
  13.             If f.Contains(q(i) + q(i + 1)) Then
  14.                 i += 1
  15.                 FalseCount = 0
  16.             Else
  17.                 Dim d As Integer = q(i+1)
  18.                 q.Remove(d)
  19.                 q.AddLast(d)
  20.                 FalseCount += 1
  21.                 If FalseCount > q.Count Then
  22.                     i = 0
  23.                     FalseCount = 0
  24.                     d = q(0)
  25.                     q.RemoveFirst()
  26.                     q.AddLast(d)
  27.                 End If
  28.             End If
  29.         Loop Until i >= q.Count - 2 ' Идти до тех пор, пока не превысим коллекцию -2 элемента
  30.        
  31.         For Each i In q
  32.             Console.Write(i & " ")
  33.         Next
  34.        
  35.         Return 0
  36.     End Function
  37. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement