Cosa significa “ rompere i legami ” nel contesto dellordinamento

Come incarico di colloquio per sviluppatore di software, ho ricevuto lincarico. Ho un elenco di bambini e il compito è: ordinare i bambini in ordine crescente per data_di nascita timestamp, rompere i legami per ID

La struttura di child è:

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

Non riesco a capire il significato della frase “rompere i legami” nel contesto dato. Immagino che possa essere uno dei seguenti:

  • se birth_date è lo stesso – il primo va bambino con id
  • durante lordinamento utilizzando birth_date, ignora il segno -.

Commenti

  • È ' probabilmente la prima opzione che hai dato.
  • questa è una domanda in lingua inglese
  • Come altri hanno notato, ' è quasi certamente la prima interpretazione. Voglio solo dare un consiglio, però: se lintervista è condotta di persona, o se ' è un modo semplice per contattarli, sentiti libero di chiedere per chiarimenti subito. Nessuno dotato di buon senso lo terrà contro di te.

Rispondi

A tie-break è una giocata extra quando due giocatori hanno lo stesso numero di punti, per decidere chi è il vincitore.

Non ho mai sentito questa espressione nellordinamento, ma trasporre da tennis a quellarea, significa che a parità di ogni altra cosa, fai un ulteriore confronto sullid per decidere chi è per primo.

Parlerebbe di un elenco collegato, esiterei di più, perché un pareggio è anche un collegamento o una connessione. Ma anche con questo significato, nel tuo contesto di ordinamento, lunica connessione che potrebbe avere senso sarebbe quella delluguaglianza.

Commenti

  • Il concetto di " lega " nellordinamento è certamente abbastanza comune da avere una parola chiave per esso in SQL. " rompere un pareggio " non è un termine tecnico, ma significa semplicemente affrontare i legami compiendo alcuni passaggi aggiuntivi per garantire classifiche uniche, spesso un passaggio di natura spuria o casuale (come il lancio di una moneta per determinare una partita di calcio, o la classifica dei dati secondo I d).
  • @Steve Grazie per questa illuminante conferma. Infatti SQL TOP WITH TIES si riferisce a valori uguali. Dallaltro lato C ++ vede i legami in modo molto diverso, essendo std :: tie un gruppo di elementi collegati tra loro in una tupla. ' viene utilizzato anche nellordinamento, ma solo per creare un ordine lessicografico tra gli elementi.

Risposta

Nel contesto dellordinamento, la rottura del pareggio significa garantire un ordine totale.

Dai unocchiata ai dati di esempio:

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

Ci sono esattamente due pezzi di dati reali, cosa succede se ci sono due persone con nomi e date di nascita identici?

Lalgoritmo di ordinamento non può decidere quale va prima, o anche se sono essenzialmente la stessa cosa, e dovrebbero essere scartati solo in copia.

Questo è un vero problema perché lordinamento di due copie separate di un elenco potrebbe risultare in due ordini diversi, confrontandoli per le coppie di elementi (a[0] == b[0] && a[1] == b[1] && ...) risulterebbero false.

Questo è il motivo per cui è importante un ordine totale.

Ora non cè più dati reali su cui fare la distinzione, quindi come faremo a garantire che gli elementi siano sempre ordinati nello stesso ordine. T La risposta è rompere il pareggio utilizzando i dati inventati. È completamente arbitrario, ma ora non importa quanto spesso lelenco venga codificato e ricomposto, ordinerà sempre gli elementi nelle stesse posizioni consentendo il confronto confrontando ciascuna coppia di elementi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *