Gegeben Array A, überprüfe, ob A [i] = i für irgendein i existiert.Gegeben sei ein unsortiertes Array A, überprüfe, ob A [i] = i effizient existiert
Ich soll das schneller als lineare Zeit lösen, was mir unmöglich erscheint. Die Lösung, die ich mir ausgedacht habe, besteht darin, zuerst das Array in n * log (n) -Zeit zu sortieren, und dann kann man einfach schneller als lineare Zeit überprüfen. Da das Array unsortiert ist, kann ich keine "effiziente" Lösung sehen.
Auch wenn Sie sortieren, ist es teurer als lineare Zeit. –
Sie haben Recht, das kann nicht schneller als in linearer Zeit auf einem ungeordneten Array getan werden. – dasblinkenlight
Wenn A sortiert ist, ist eine binäre Suche schneller als lineare Zeit. Wenn Sie keine Informationen über A haben, ist dies nicht möglich, da jedes Element übereinstimmen könnte. –