décrivent un algorithme qui peut déterminer la longueur d'un tableau dans O (log n).algorithme pour déterminer la longueur du tableau
Répondre
C pseudo-style:
int lengthOfArray(p){
int j = 1;
try{
while(j < Integer.MaxValue){
p[j]; // Might need to do something more with p[i]
// to test bound.
j *= 2;
}
}catch(ArrayIndexOutOfBounds e){
}
j = searchArrayHelper(p, j/2, j);
try{
while(1){
// This loop is guaranteed to run O(log n) times or less.
p[j];
j++;
}
}catch(ArrayIndexOutOfBounds e){
j--;
}
return j;
}
int searchArrayHelper(p, int i, int j){
try{
p[j];
} catch (ArrayIndexOutOfBounds e){
int mid = (i + j)/2;
return searchArrayHelper(p, i, mid);
}
return i;
}
Il semble que dans votre seconde fonction vous retourniez le premier p [j] que vous trouvez qui ne déclenche pas _ArrayIndexOutOfBounds_, mais comment êtes-vous sûr que p [j + 1] va le déclencher, et j est le tableau longueur? –
@belisarius, vous avez raison, il peut y avoir un petit bug là-bas. Je vais modifier la réponse pour publier une solution rapide. – Olhovsky
J'ai fait le correctif, bien qu'il se sent comme un hack sale. Faites-moi savoir si vous remarquez d'autres bugs. – Olhovsky
Ok. Je vais poster le commentaire que j'ai fait ci-dessus comme réponse, bien que votre question soit plutôt vague. Passez par i = 1, 2^1, 2^2, ... 2^m jusqu'à l'apparition de l'erreur ArrayIndexOutofBounds.
Recherchez ensuite binaire entre 2^(m-1) et 2^m jusqu'à ce que vous trouviez la frontière où l'erreur a disparu. C'est n.
Il est O (logn)
Modifier
Cette suggestion est basée sur l'extrait que vous avez posté un commentaire, où il est clair que vous êtes autorisé à détecter ArrayIndexOutOfBounds
- 1. algorithme longueur du message minimum
- 2. Utiliser Echo pour déterminer la longueur du répertoire
- 3. Utiliser MPlayer pour déterminer la longueur du fichier audio/vidéo
- 4. longueur de calcul du tableau
- 5. déterminer la longueur du contenu de la chaîne HTML
- 6. Comment déterminer la longueur maximale d'une certaine colonne de tableau?
- 7. Algorithme permettant de déterminer si un tableau est équilibré
- 8. Comment obtenir la longueur du tableau 2D
- 9. Vérification de la longueur du tableau
- 10. Algorithme pour déterminer l'heure d'été d'une date?
- 11. réduire la longueur du tableau de caractères
- 12. Obtenez longueur du tableau JSON.Net
- 13. Longueur du tableau imbriqué lua
- 14. Longueur du tableau renvoyant "indéfini"
- 15. Déterminer la longueur du contenu d'un Intent.STREAM_EXTRA (Android)
- 16. Comment déterminer la longueur du texte dans un champ UIText
- 17. mangouste - Tri longueur du tableau
- 18. Déterminer la longueur d'un enregistrement audio?
- 19. MySQL Déterminer la plus longue longueur VarChar
- 20. Déterminer le temps d'exécution d'un algorithme pour comparer deux tableaux
- 21. tableau avec la même longueur
- 22. Algorithme pour déterminer si les réseaux striés se chevauchent?
- 23. Déterminer la longueur maximale de thrust :: device_vector
- 24. Déterminer la longueur d'une chaîne dans MIPS32
- 25. Algorithme pour déterminer le mot de passe faible/bon/fort
- 26. Algorithme pour nombre entier maximal dans un tableau d'entiers
- 27. Longueur du tableau multidimensionnel avec smarty
- 28. Javascript sélection de longueur du tableau
- 29. Existe-t-il un algorithme pour déterminer la quantité de lumière du jour?
- 30. longueur du tableau dans l'erreur chrome Javascript
Étant donné les hypothèses? – jason
Votre question est tellement impérative que j'ai envie de faire mes devoirs. –
Vous pouvez trouver la longueur d'un tableau dans O (1). Nous avons besoin de plus de contexte pour y répondre. – Olhovsky