Nehmen wir an, ich habe ein sortiertes Array von {1, 2, 3, 4, 5, 7, 8, 9, 10, 15, 16, 21, 23, 25, 26}
. Ich möchte diese Elemente in Abständen die folgende Art und Weise setzen:Erstellen Sie Intervalle in einem sortierten Array
1..5
7..10
15..16
21..21
23..23
25..26
In Wirklichkeit ich viel größere Daten haben, so würde ich einen Algorithmus mit einer guten Laufzeit benötigen.
Was ich im Sinn hatte, ist folgendes: Trennen Sie das Array in 2 Teile und mit 4 Schleifen durch das Array. Eine Schleife von 0 Index, 2 Schleife von der Mitte des Arrays und 1 Schleife vom Ende davon. Jede Schleife würde prüfen, ob das aktuelle und das nächste Element diff 1 ist, wenn ja, dann gehe zum nächsten Element, andernfalls erzeuge ein Intervall von vorherigen Elementen und starte ein neues Intervall vom nächsten Element.
Meine Frage ist, dass es ein guter Ansatz ist, oder gibt es einen besseren Weg? Bitte Pseudo- oder Java-Code.
Warum nicht einfach mit Index 0 beginnen und eine sequenzielle Schleife ausführen und das erste Element des Intervalls verfolgen. – tsolakp
Wie leiten Sie die Intervalle ab? Ich sehe kein Muster darin. – user3437460
Warum alle Schleifen? Es scheint wie eine einzelne Schleife, wobei ein neues Intervall beginnt, wenn der letzte Wert + 1! = Aktueller Wert ist. –