Advertisement
Guest User

Untitled

a guest
Dec 20th, 2014
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Option Explicit
  2. Sub sortieren()
  3. Dim a(1 To 5, 1 To 2) As Integer
  4. Dim i As Integer, j As Integer
  5.     'Einlesen
  6.    For i = 1 To 5
  7.         For j = 1 To 2
  8.         a(i, j) = Cells(i, j)
  9.         Next j
  10.     Next i
  11. 'Aufruf quicksort
  12. Call quicksort(1, 5, a(), 1)
  13.  
  14. 'ausgabe
  15. For i = 1 To 5
  16. For j = 1 To 2
  17. Cells(i, j + 3) = a(i, j)
  18. Next j
  19. Next i
  20. End Sub
  21.  
  22.  
  23. Sub quicksort(ByVal u As Integer, ByVal o As Integer, ByRef a() As Integer, spalte As Integer)
  24.     'u=listenanfang, o=listenende
  25.    If u < o Then
  26.     Dim i As Integer, j As Integer
  27.     i = u
  28.     j = o - 1
  29.    
  30.         While i < j
  31.             While a(i, spalte) <= a(o, spalte) And i < o
  32.             i = i + 1
  33.             Wend
  34.    
  35.             While a(j, spalte) >= a(o, spalte) And j > u
  36.             j = j - 1
  37.             Wend
  38.    
  39.             If i < j Then
  40.                 Call tausche2(a(), i, j)
  41.             End If
  42.    
  43.         Wend
  44.    
  45.         If a(i, spalte) > a(o, spalte) Then
  46.             Call tausche2(a(), i, o)
  47.         End If
  48.    
  49.         Call quicksort(u, i - 1, a, spalte)
  50.         Call quicksort(i + 1, o, a, spalte)
  51.    
  52.     End If
  53. End Sub
  54.  
  55. Sub tausche2(ByRef a() As Integer, ByVal zeile1 As Integer, ByVal zeile2 As Integer)
  56. Dim h As Integer, i As Integer
  57.  
  58. For i = 1 To 2
  59.     h = a(zeile1, i)
  60.     a(zeile1, i) = a(zeile2, i)
  61.     a(zeile2, i) = h
  62. Next i
  63. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement