Einzelnen Beitrag anzeigen

Ducksoul

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

Re: Array sortieren mit Permutationen..

  Alt 12. Mär 2010, 17:17
Hallo, ich hoffe das is nu die letzte Frage zu diesem Thema:

Ich habe jetzt alle Permutationen pro Prio, möchte die nun zusammenführen.

Also angenommen:
Delphi-Quellcode:
Prio1:
Kombi (J1, J2), (J2, J1)

Prio2:
Kombi (J3)

Prio3:
Kombi (J4, J4, (J5, J4)

--->
resultarray:
J1, J2, J3, J4, J5
J2, J1, J3, J4, J5
J1, J2, J3, J5, J4
J2, J1, J3, J5, J4
Ich habe jetzt probiert das über folgenden Code zu realisieren:

Delphi-Quellcode:
  kz := 0;
  while kz < count do
  begin
    sz := 0;
    for i := 0 to ol.Count - 1 do
    begin
      Priolist := ol[i] as TPriolist;
      for j := 0 to Length(Priolist.Jobs) - 1 do
      begin
        arr_finkombis[kz,sz] := Priolist.Kombis[Priolist.counter, j];
        Inc(sz);
      end;

      Inc(Priolist.counter);
      if Priolist.counter >= Length(Priolist.Kombis) then
        Priolist.counter := 0;
    end;
    Inc(kz);
  end;
kz zählt die Zeile des resultarray
sz zählt die Spalte des resultarray
Jedes mal wenn eine Kombi einer Prio durchgelaufen ist wird ein Zähler hochgezählt, so dass beim nächsten mal die darauffolgende Kombi genommen wird.
Wurden alle Kombis der Prio einmal durchgelaufen, so wird der Zähler wieder null gesetzt und die Kombiliste der Prio wird neu durchlaufen.


Aber das Problem ist, dass ich ja den Counter einer Prioliste erst höher setzen darf, wenn alle kleineren Listen einmal durchgelaufen sind. Ich habe mir gedacht Ne .change Variable in die Klasse Priolist integrieren und wenn ne Liste durchgelaufen is setze ich change auf true.
Und wenn alle kleineren Listen change auf true sind, dann gehe ich erst zur nächsten Kombination.

Ist das ein praktikabler Weg oder gehts evtl. besser?

Gruß
Franz
  Mit Zitat antworten Zitat