2016-07-03 3 views
-11

Programm erhält eine Anzahl von int Arrays mit der Größe [2; 2000]. Die Frage ist: Können Arrays nach dem Löschen von nicht mehr als einem Element sortiert werden?Identifikationsmöglichkeit zum Sortieren eines Arrays durch Löschen von nicht mehr als einem Element

Beispiele:

2 16 3 3 - nach '16' zu löschen wäre es nicht-zunehmender Array sein.

4 16 3 15 - Sortierung ist nicht möglich.

Einfacher Weg: Deliting erste falsche Element und Überprüfung der Tatsache der Sortierung. Es dauert zu lange, wenn eine große Anzahl von Arrays vorhanden ist oder Arrays große Größen haben. Mit Ausnahme der Fälle, dort ist das falsche Element zuerst oder zuletzt, und dort Array-Größe ist weniger als 4, auf welche Art und Weise kann diese Möglichkeit beschleunigt werden

+0

* Kann jemand Algorithmus schreiben *: Dies ist kein Code-Schreibdienst. – trincot

Antwort

2

einfach durchlaufen das Array, und wenn Sie bemerken, N_x > N_x+1 entfernen N_x, und markieren dass Sie 1 Nummer ...

entfernt haben, falls Sie eine andere N_y > N_y+1 gefunden haben, wo y!=x, dann kann es nicht sortiert werden.

Ich überlasse die Implementierung für Sie, da es Ihre Hausaufgaben nach allem ist.

+0

Aber es gibt eine Reihe von verschiedenen Situationen: 5 4 5 5 2 1 oder 5 4 5 4 2 1 so was müssen wir löschen? Die Überprüfung aller Fälle benötigt viel Zeit. Ich habe niemanden gefragt, bevor ich alles versucht habe, was ich kann. Ich dachte, jemand kennt einen einfacheren Algorithmus. –

+0

Ja, die Wiederholung von N_x ist ein Problem, aber Sie können es leicht umgehen, indem Sie es beim Entfernen von N_x überprüfen ... überprüfen, dass N_x-1! = N_x –

+0

Das war kein Problem meines Beispiels, in (5 4 5 5 2 1) das Löschen von 4 macht es nicht inkresierend, beim zweiten Beispiel löscht 5 es nicht-inkresierend, es gab keine Situation, in der N_x-1 == N_x wahr ist. Wenn das Array groß ist, dauert das Löschen eines Elements und das Verifizieren des gesamten Arrays zu viel Zeit, und es kann nicht zunehmen und nicht fallen. Das Überprüfen aller Varianten dauert doppelt. –

Verwandte Themen