Étudiant de classe: Nom de la chaîne, Enregistrer String, String Dept, Integer Pendercollegegefee Classe Hostelstudent: Nom de cordes, Entrée de la chaîne, Integer Pendinghostelfee, Integer PendemessFeee et liste de deux objets:
maintenant, je souhaite comparer les enregistrements dans les deux listes ayant le même nom et le même numéro de nom, puis devez appeler une méthode avec l'enregistrement dont les valeurs sont toutes deux dans deux listes à p> Quelqu'un peut-il m'aider à atteindre ce problème dans O (nlogn) ou même moins parce que la longueur de l'enregistrement de la liste est très élevée. p> p>
3 Réponses :
Trier chaque liste par nom et numéro de registre: O (n logn). P>
boucle via la première liste et pour chaque élément de recherche binaire de l'autre liste d'une correspondance, puis effectuez toutes les opérations nécessaires sur les deux éléments correspondants. La recherche binaire est O (logn), c'est donc globalement O (n logn). P>
Les deux étapes sont O (n logn), de sorte que l'algorithme est toujours O (nlogn) p>
Faire une classe représentant juste une "identité" (donc, vraisemblablement, nom + registre, bien que cela ressemble à vous avoir mal jugé la situation et que vous voulez vraiment "regretter" pour être la clé unique, auquel cas vous pouvez Il suffit d'utiliser une chaîne), puis au lieu de listes, utilisez des cartes: p>
Ces recherches sont beaucoup plus rapides. P>
Alternativement, triez vos listes sur par exemple Tout dans toute la solution de carte va être beaucoup, beaucoup plus simple. Je vous conseille fortement d'aller avec ça. P> Carte
Carte
Enregistrer code>, vous pouvez utiliser une recherche binaire (que vous pouvez trouver dans la classe de collections), qui est également des commandes de grandeur plus rapidement que de rechercher une liste. Cependant, vous devez saisir la source de recherche binaire (ou utiliser Wikipedia pour comprendre l'algorithme; vous souhaitez utiliser un combo de nom Reigster + pour trouver une entrée, vous n'aurez pas d'instance réelle de Hostelstudent à rechercher. p>
Tout d'abord, je prolongerais la classe d'étudiants dans la classe Hostelstudent. Vous utilisez plusieurs variables à la fois.
étudiant.cs: p> hostelstudent.cs: p> Vous pouvez faire une liste de la liste de l'étudiant <étudiant> code> et une liste de la liste
de Hostelstudent