vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
HILFE: Sortierung: Nicht genügend Stapelspeicher! 
Autor: Fenerlisivas
Datum: 19.05.10 08:43

Hallo Zusammen

Ich habe eine sehr kurze frage:

Ich benutze ein quicksort-funktion welche ein Array sortiert. Jedoch hat mein Array jetzt 100000 Felder
und die Funktion meldet das die Funktion zu Nicht genügend Stapelspeicher.
Wie kann ich dies Verhindern?

Folgend sieht man die Funktion:

Function QuickSort(SortArray() As String, Optional ByVal varStart As Long, _
  Optional ByVal varEnd As Long)
   Dim i As Double, J As Double, RandIndex As Double, Partition As String
   Dim Low As Double, High As Double
 
   Low = IIf(varStart = 0, LBound(SortArray), varStart)
   High = IIf(varEnd = 0, UBound(SortArray), varEnd)
 
   If Low < High Then
      If High - Low = 1 Then
         If UCase(SortArray(Low)) > UCase(SortArray(High)) Then
            Swap SortArray(Low), SortArray(High)
         End If
      Else
         'Einen zufälligen Ausgangspunkt generieren
         RandIndex = Rnd() * (High - Low) + Low
         Swap SortArray(High), SortArray(RandIndex) 'HIER ZEIGT ER DEN FEHLER 
         ' AUF
         Partition = UCase(SortArray(High))
         Do
            'Von beiden Seiten auf den Ausgangspunkt "zugehen"
            i = Low: J = High
            Do While (i < J) And (UCase(SortArray(i)) <= Partition)
               i = i + 1
            Loop
            Do While (J > i) And (UCase(SortArray(J)) >= Partition)
               J = J - 1
            Loop
 
            'Wenn der Ausgangspunkt noch nicht erreicht ist, sind 2 Elemente auf
            'beiden Seiten funktionsunfähig, deswegen werden sie vertauscht
            If i < J Then
               Swap SortArray(i), SortArray(J)
            End If
         Loop While i < J
 
         'Den Ausgangspunkt zu seinem richtigen Platz im Array führen
         Swap SortArray(i), SortArray(High)
 
         'Die QuickSort-Routine rekursiv nochmals aufrufen
         If (i - Low) < (High - i) Then
            QuickSort SortArray, Low, i - 1
            QuickSort SortArray, i + 1, High
         Else
            QuickSort SortArray, i + 1, High
            QuickSort SortArray, Low, i - 1
         End If
      End If
   End If
End Function
Function Swap(First As String, Second As String)
   Dim varTemp As String
 
   varTemp = First
   First = Second
   Second = varTemp
End Function
Danke Gruss FENER

Beitrag wurde zuletzt am 19.05.10 um 08:44:05 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
HILFE: Sortierung: Nicht genügend Stapelspeicher!1.532Fenerlisivas19.05.10 08:43
Re: HILFE: Sortierung: Nicht genügend Stapelspeicher!1.059Preisser19.05.10 16:54
Re: HILFE: Sortierung: Nicht genügend Stapelspeicher!1.045icetea12319.05.10 18:40

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel