S: Algorithmus zum Daten filtern.

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

x_to

Betreff: S: Algorithmus zum Daten filtern.

BeitragSo, Jun 16, 2013 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe hier momentan ein eindimensionales Array gefüllt mit shorts in aufsteigender folge (sortiert). da manche shorts mehrfach im array erscheinen wollte ich jetzt nur unterschiedliche shorts in einem neuen array speichern.
zusätzlich zählen wieviele unterschiedliche werte im array sind...

allerdings weiß ich nicht wie ich anfangen sollte.

das unsortierte array habe ich mit nem bubble sort sortiert, habe auch genug pseudocode dafür gefunden, aber jetzt weiß ich erstmal nicht weiter...

gibt es da was brauchbares im code archiv oder hat jemand nen lösungsansatz???

danke für die hilfe.....

Xeres

Moderator

BeitragSo, Jun 16, 2013 21:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn die Werte schon sortiert sind, kannst du Werte einfach in ein zweites Array kopieren, wenn der vorhergehende Wert nicht der gleiche war.

Edit:
~VERSCHOBEN~
Ich nehme mal an, BlitzMax war gemeint.

DAK

BeitragMo, Jun 17, 2013 11:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Zwei Möglichkeiten fallen mir spontan ein.
Möglichkeit 1: Zähle, wie viele unterschiedliche Elemente du hast. Dazu läufst du das ganze Array ab, und immer wenn sich der momentane Eintrag vom Letzten unterscheidet, zählst du 1 dazu.
Dann erstellst du dir ein neues Array mit der Größe der Anzahl der unterschiedlichen Elemente.
Jetzt läufst du das Array noch mal ab, und kopierst alle unterschiedlichen in dein neues Array.

Möglichkeit 2: Du erstellst ein neues Array mit der Größe des Alten. Dann läufst du das alte Array ab und kopierst alle unterschiedlichen Einträge nach einander in das neue Array. Dir wird dann am Ende des Arrays etwas leerer Platz bleiben, entsprechend der Anzahl der Duplikate.
Dann slicest du das Array runter auf die passende Größe:
BlitzMax: [AUSKLAPPEN]
neuesArray = neuesArray[..anzahlUnterschiedliche]


Da slicen aber sehr langsam ist (soweit ich mich erinnere), könnte eventuell die erste Methode schneller sein.
Gewinner der 6. und der 68. BlitzCodeCompo

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group