Que signifie “ rompre les liens ” dans le contexte du tri

En tant que mission dentretien pour le développeur de logiciels, jai reçu la tâche. Jai une liste denfants et la tâche est la suivante: trier les enfants par ordre croissant de date de naissance, rompre les liens par ID

La structure de child est:

"child": { "id": "14" "name": "John" "birth_date": "1990-12-20T11:50:48Z" } 

Je narrive pas à comprendre le sens de lexpression « briser les liens » dans le contexte donné. Je suppose que cela peut être lun des suivants:

  • si birth_date est le même – commence par lenfant avec id
  • lors du tri à laide de birth_date, ignorez le signe -.

Commentaires

  • Cest ' probablement la première option que vous avez donnée.
  • ceci est une question en anglais
  • Comme d’autres l’ont noté, ' est presque certainement la première interprétation. Je veux juste donner un conseil, cependant: si l’entretien est mené en personne, ou s’il existe un moyen simple de les contacter ', nhésitez pas à demander pour clarification sur-le-champ. Personne de sensé ne pourra vous en vouloir.

Réponse

A tie-break est un jeu supplémentaire lorsque deux joueurs ont le même nombre de points, pour décider qui est le gagnant.

Je nai jamais entendu cette expression lors du tri, mais la transposition de tennis dans cette zone, cela signifie que tout le reste étant égal, vous faites une comparaison supplémentaire sur lidentifiant pour décider qui est le premier.

Parlez-vous dune liste chaînée, jhésiterais davantage, car une cravate est aussi un lien ou une connexion. Mais même avec ce sens, dans votre contexte de tri, la seule connexion qui pourrait avoir un sens serait celle de légalité.

Commentaires

  • Le concept de " liens " dans le tri est certainement assez courant pour avoir un mot-clé pour cela en SQL. " briser une égalité " nest pas un terme technique, mais signifie simplement gérer les égalités en prenant des mesures supplémentaires pour assurer un classement unique – souvent une étape qui est de nature fausse ou aléatoire (comme lancer une pièce pour déterminer un match de football, ou classer les données par I d).
  • @Steve Merci pour cette confirmation éclairante. En effet, SQL TOP WITH TIES fait référence à des valeurs égales. De lautre côté, C ++ voit les liens très différemment, std :: tie étant un groupe déléments liés ensemble dans un tuple. Il ' est également utilisé pour le tri, mais simplement pour créer un ordre lexicographique entre les éléments.

Réponse

Dans le contexte du tri, le bris dégalité consiste à garantir un ordre total.

Jetez un œil aux données dexemple:

 "id": "14" //made up data "name": "John" //real data "birth_date": "1990-12-20T11:50:48Z" //real data 

Il y a exactement deux données réelles, que se passe-t-il sil y a deux personnes avec des noms et des dates de naissance identiques?

Lalgorithme de tri ne peut pas décider lequel va dabord, ou même si elles sont essentiellement la même chose, et il devrait simplement être rejeté à la copie.

Cest un réel problème car le tri de deux copies séparées dune liste peut entraîner deux ordres différents, en les comparant par les paires déléments (a[0] == b[0] && a[1] == b[1] && ...) donneraient alors un résultat faux.

Cest pourquoi un ordre total est important.

Il ny en a plus données réelles sur lesquelles faire la distinction, alors comment allons-nous nous assurer que les éléments seront toujours triés dans le même ordre. T La réponse est de rompre le lien en utilisant les données inventées. Cest complètement arbitraire mais maintenant peu importe la fréquence à laquelle la liste est brouillée et recourue, il triera toujours les éléments dans les mêmes positions permettant une comparaison en comparant chaque paire déléments.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *