Mit jelent a “ kapcsolatok megszakítása ” a

rendezés keretében Interjúként a szoftverfejlesztő számára megkaptam a feladatot. Van egy gyereklistám, és az a feladat: rendezni a gyerekeket, hogy növekvőek legyenek születési_dátum-időbélyegük szerint, megszakítják a kapcsolatokat azonosító szerint

A gyermek felépítése:

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

Nem tudom értelmezni a “kapcsolatok megszakítása” kifejezés jelentését az adott összefüggésben. Gondolom, ez a következők egyike lehet:

  • ha a birth_date ugyanaz – először alacsonyabb gyermekkel megy a id
  • a birth_date használatával történő rendezés közben hagyja figyelmen kívül az - előjelet.

Megjegyzések

  • ' valószínűleg az első lehetőség, amelyet adott.
  • ez egy angol nyelvű kérdés
  • Amint mások megjegyezték, szinte minden bizonnyal ez az első értelmezés '. Mindazonáltal csak egy tanácsot szeretnék adni: ha az interjút személyesen folytatják le, vagy ha ' van egy egyszerű módja a kapcsolatfelvételnek, nyugodtan kérdezzen tisztázásért ott és akkor. Senki, aki értelmes, ezt nem fogja ellened állítani.

Válasz

A tie-break egy extra játék, amikor két játékosnak ugyanannyi pontja van, hogy eldöntse, ki a győztes.

Soha nem hallottam ezt a kifejezést válogatás közben, de ha átültettem a teniszről erre a területre, ez azt jelenti, hogy minden más dolog egyenlő, további összehasonlítás az id-ről annak eldöntésére, hogy ki az első.

Ha linkelt listáról beszélne, többet haboznék, mert egy döntetlen link vagy kapcsolat. De még ezzel a jelentéssel is, a rendezés összefüggésében, az egyetlen kapcsolat, amely értelmes lehet, az egyenlőség.

Megjegyzések

  • A " kapcsolatok " fogalma a rendezésben minden bizonnyal elég gyakori ahhoz, hogy kulcsszó legyen az SQL-ben. A " döntetlen megszakítása " nem szakkifejezés, hanem egyszerűen azt jelenti, hogy a kapcsolatokkal foglalkozunk néhány további lépéssel az egyedi rangsorok biztosítása érdekében – gyakran hamis vagy véletlenszerű lépés (például egy érme feldobása a focimeccs meghatározásához, vagy az adatok I d).
  • @Steve Köszönöm ezt a felvilágosító megerősítést. Valójában az SQL FELTÉTELEKKEL FELSŐ egyenlő értékekre utal. A másik oldalon a C ++ nagyon másképp látja a kapcsolatokat, a std :: tie elemek csoportja, amelyek összekapcsolódnak ketté. ' is rendezésben használatos, de csak azért, hogy lexikográfiai rendet hozzon létre az elemek között.

Válasz

A válogatás kapcsán a döntetlen megszakítása a teljes sorrend biztosításáról szól.

Vessen egy pillantást a példa adataira:

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

Pontosan két valós adat létezik, mi történik, ha két azonos névvel és születési dátummal rendelkező ember van?

A rendezési algoritmus nem tudja eldönteni, melyik megy először, vagy ha lényegében ugyanaz a dolog, és csak el kell vetni a másolaton.

Ez valódi probléma, mert a lista két külön példányának rendezése két különböző sorrendet eredményezhet, összehasonlítva őket az elempárok (a[0] == b[0] && a[1] == b[1] && ...) hamis eredményt eredményeznek.

Ezért fontos a teljes sorrend.

Most már nincs több valós adatok a megkülönböztetéshez, akkor hogyan fogjuk biztosítani, hogy az elemek mindig ugyanabba a sorrendbe legyenek rendezve. azt válaszolja, hogy a kitöltött adatok felhasználásával meg kell szakítani a döntetlent. Teljesen önkényes, de mára nincs jelentősége annak, hogy a listát milyen sűrűn keverik össze és veszik igénybe, az elemeket mindig ugyanazokra a pozíciókra rendezi, lehetővé téve az összehasonlítást az egyes elempárok összehasonlításával.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük