AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Array sortieren mit Permutationen..

Ein Thema von Ducksoul · begonnen am 1. Mär 2010 · letzter Beitrag vom 17. Mär 2010
 
Ducksoul

Registriert seit: 19. Apr 2006
Ort: Ilmenau
87 Beiträge
 
RAD-Studio 2009 Pro
 
#1

Array sortieren mit Permutationen..

  Alt 1. Mär 2010, 15:33
Hi,

der Topicname ist mal wieder äußerst nichtsaussagend, daher mal eine kurze Erläuterung:

Ich habe ein Array mit folgendem Aufbau:

Delphi-Quellcode:
  jobArray: Array of TJob;

// wobei:
  TJob = record
          j_id: integer; // Job-ID --> Prozessintern
          j_prio: integer; // Priorität
          j_color: string; // Farbe
          j_name: string; // Name
          j_proc: Array of integer; // Prozesszeit pro Maschine
Nach dem Füllen dieses Arrays, sollen die TJob's nach ihrer Prioriät (TJob.j_prio) absteigend sortiert werden. Dies habe ich über folgenden Quicksort Algorithmus gelöst:

Delphi-Quellcode:
procedure QuickSort(var A: array of TJob; iLo, iHi: Integer) ;
var
  Lo, Hi, Pivot: Integer;
  T: TJob;
begin
  Lo := iLo;
  Hi := iHi;
  Pivot := A[(Lo + Hi) div 2].j_prio;
  repeat
    while A[Lo].j_prio > Pivot do Inc(Lo) ;
    while A[Hi].j_prio < Pivot do Dec(Hi) ;
    if Lo <= Hi then
    begin
      T := A[Hi];
      A[Hi] := A[Lo];
      A[Lo] := T;
      Inc(Lo) ;
      Dec(Hi) ;
    end;
  until Lo > Hi;
  if Hi > iLo then QuickSort(A, iLo, Hi) ;
  if Lo < iHi then QuickSort(A, Lo, iHi) ;
end; // Quicksort
Mein Problem: Ich brauche alle möglichen Permutationen, wenn Jobs mit gleichen Prioritäten vorhanden sind. Hab mir nun so gedacht, dass ich nich das Array an sich speicher, sondern ein neues Array anlege mit den ID's der Jobs in jeweils sortierter Reihenfolge.

Aber wie bekomme ich alle möglichen Permutationen raus? Mit dem rekursiven Quicksort wird das schlecht gehen.


Gruß
Franz
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz