http://en.wikipedia.org/wiki/H-indexSuche-Algorithmus h-Index schnell
Diese Wikiseite ist eine Definition von h-Index
grundsätzlich zu berechnen, wenn ich einen Arrays haben bin [0 3 4 7 8 9 10], Mein h-Index wäre 4, da ich 4 Zahlen größer als 4 hätte. Mein h-Index wäre 5 gewesen, wenn ich 5 Zahlen größer als 5 hätte, und usw. Bei einem Array von ganzen Zahlen größer oder gleich 0, Wie kann der h-index effizient berechnet werden?
edit: das Array nicht notwendigerweise sortiert
Gute Lösung! +1 – ElKamina
Dieser Algorithmus ist falsch, es sollte sein 'if (sum == i) return i; '. Aber selbst dann berechnete es, dass es "i" -Nummern gibt, die größer ** oder gleich ** sind als "i" (was gemäß dem Link korrekt ist, aber nicht zu dem, was der Fragesteller wissen wollte). Wenn in der zweiten 'for'-Schleife keine Übereinstimmung (und daher kein' return') gefunden wird, gibt der Algorithmus '0' zurück, was bedeutet, dass es 0 (größer oder gleich) 0 gibt, die für (nicht-leere) widersprüchlich sind) Array, das nur Zahlen enthält, die größer oder gleich 0 sind (zumindest wenn Sie die Beziehung '>' 'wie bisher) verwenden. –
Keine Kommentare? Keine Erklärung? Der Algorithmus mag gut sein, aber zwinge deine Leser nicht dazu, sie zu durchdenken, teile zumindest die Kernidee (n). – timgeb