דאַג לויד: אזוי אין קס50, מיר ווע באדעקט אַ פּלאַץ פון פאַרשידענע דאַטן סטראַקטשערז, רעכט? מיר ווע געזען ערייז, און לינגקט רשימות, און האַש טישן, און טרייז, סטאַקס און קיוז. מיר וועט אויך לערנען אַ קליין וועגן ביימער און העאַפּס, אָבער טאַקע די אַלע נאָר סוף אַרויף ווייל ווערייישאַנז אויף אַ טעמע. עס טאַקע זענען די מין פון פיר יקערדיק געדאנקען אַז אַלץ אַנדערש קענען קאָכן אַראָפּ צו. ערייז, לינגקט רשימות, האַש טישן, און טרייז. און ווי איך געזאגט, עס זענען ווערייישאַנז אויף זיי, אָבער דאָס איז שיין פיל געגאנגען צו סאַמערייז אַלץ מיר רע געגאנגען צו רעדן וועגן אין דעם קלאַס אין טערמינען פון סי אבער ווי טאָן די אַלע מאָס אַרויף, רעכט? מיר ווע גערעדט וועגן די פּראָס און קאָנס פון יעדער אין באַזונדער ווידיאס אויף זיי, אָבער עס ס אַ פּלאַץ פון נומערן געטינג טראָון אַרום. עס ס אַ פּלאַץ פון גענעראַל געדאנקען געטינג טראָון אַרום. זאל ס פּרובירן און קאָנסאָלידירן עס אין נאָר איין אָרט. זאל ס וועגן די פּראָס קעגן די קאָנס, און באַטראַכטן וואָס דאַטע סטרוקטור זאל זיין די רעכט דאַטע סטרוקטור פֿאַר דיין באַזונדער סיטואַציע, וועלכער טיפּ פון דאַטן איר ניטאָ סטאָרינג. איר טאָן ניט דאַווקע שטענדיק דאַרפֿן צו נוצן די סופּער שנעל ינסערשאַן, דילישאַן, און לוקאַפּ פון אַ טריע אויב איר טאַקע טאָן ניט זאָרגן וועגן ינסערטינג און דיליטינג צו פיל. אויב איר דאַרפֿן נאָר געשווינד ראַנדאָם צוטריט, אפֿשר אַ מענגע איז בעסער. אַזוי לאָזן ס דיסטילל אַז. זאל ס רעדן וועגן יעדער פון די פיר הויפּט מינים פון דאַטן סטראַקטשערז אַז מיר'ווע גערעדט וועגן, און נאָר זען ווען זיי זאלן זיין גוט, און ווען זיי זאלן ניט זיין אַזוי גוט. אזוי לאָזן ס אָנהייבן מיט ערייז. אַזוי ינסערשאַן, אַז ס מין פון שלעכט. ינסערשאַן אין די סוף פון אַ מענגע איז גוט, אויב מיר ניטאָ בנין אַ מענגע ווי מיר גיין. אבער אויב מיר דאַרפֿן צו טאָן עלעמענטן אין דער מיטן, טראַכטן צוריק צו ינסערשאַן סאָרט, עס ס אַ פּלאַץ פון shifting צו פּאַסיק אַן עלעמענט אין עס. און אַזוי אויב מיר רע געגאנגען צו אַרייַנלייגן ערגעץ אָבער דער סוף פון אַ מענגע, אַז ס מיסטאָמע נישט אַזוי גרויס. סימילאַרלי, דילישאַן, סייַדן מיר ניטאָ דיליטינג פון די סוף פון אַ מענגע, איז מיסטאָמע אויך ניט אַזוי גרויס אויב מיר טאָן ניט ווילן צו לאָזן ליידיק גאַפּס, וואָס יוזשאַוואַלי מיר טאָן ניט. מיר ווילן צו באַזייַטיקן אַ עלעמענט, און דעמאָלט סאָרט פון מאַכן עס ייַנגענעם ווידער. און אַזוי דיליטינג יסודות פון אַ מענגע, אויך ניט אַזוי גרויס. לאָאָקופּ, כאָטש, איז גרויס. מיר האָבן ראַנדאָם צוטריט, קעסיידערדיק צייַט לוקאַפּ. מיר נאָר זאָגן זיבן, און מיר גיין צו מענגע רילאָוקיישאַן זיבן. מיר זאָגן 20, מיט גיין צו מענגע רילאָוקיישאַן 20. מיר טאָן ניט האָבן צו יטעראַטע אַריבער. אַז ס שיין גוט. ערייז זענען אויך לעפיערעך גרינג צו סאָרט. יעדער מאָל מיר גערעדט וועגן אַ סאָרטינג אַלגערידאַם, אַזאַ ווי סעלעקציע סאָרט, ינסערשאַן סאָרט, בלאָז סאָרט, צונויפגיסן סאָרט, מיר שטענדיק געניצט ערייז צו טאָן עס, ווייַל ערייז זענען שיין גרינג צו סאָרט, קאָרעוו צו די דאַטן סטראַקטשערז מיר ווע געזען אַזוי ווייַט. זיי ניטאָ אויך לעפיערעך קליין. עס ס ניט אַ פּלאַץ פון עקסטרע פּלאַץ. איר נאָר שטעלן באַזונדער פּונקט ווי פיל ווי איר דאַרפֿן צו האַלטן דיין דאַטע, און אַז ס שיין פיל עס. אַזוי זיי ניטאָ שיין קליין און עפעקטיוו אין אַז וועג. אבער אן אנדער דאַונסייד, כאָטש, איז אַז זיי זענען פאַרפעסטיקט אין גרייס. מיר האָבן צו דערקלערן פּונקט ווי גרויס מיר וועלן אונדזער מענגע צו זיין, און מיר נאָר באַקומען איין שאָס אין עס. מיר קענען ניט וואַקסן און ייַנשרומפּן עס. אויב מיר דאַרפֿן צו וואַקסן אָדער ייַנשרומפּן עס, מיר דאַרפֿן צו דערקלערן אַ גאנצן נייַ מענגע, נאָכמאַכן אַלע פון ​​די יסודות פון די ערשטער מענגע אין די רגע מענגע. און אויב מיר מיסקאַלקיאַלייטיד אַז צייַט, מיר דאַרפֿן צו טאָן עס ווידער. ניט אַזוי גרויס. אזוי ערייז טאָן ניט געבן אונדז די בייגיקייַט צו האָבן בייַטעוודיק נומערן פון עלעמענטן. מיט אַ לינגקט רשימה, ינסערשאַן איז שיין גרינג. מיר נאָר שטיפט אַנטו די פראָנט. אויסמעקונג איז אויך שיין גרינג. מיר האָבן צו געפֿינען די יסודות. אַז אַרייַנציען עטלעכע שאַרף. אבער אַמאָל איר ווע געפֿונען די עלעמענט איר ניטאָ קוקן פֿאַר, אַלע איר דאַרפֿן צו טאָן איז טוישן אַ טייַטל, עפשער צוויי אויב איר האָבן אַ לינגקט ליסט-- אַ דאַבלי לינגקט רשימה, ראַטהער-- און דעמאָלט איר קענען נאָר פּאָטער די נאָדע. איר טאָן ניט האָבן צו יבעררוק אַלץ אַרום. איר נאָר טוישן צוויי פּוינטערז, אַזוי אַז ס שיין שנעל. לאָאָקופּ איז שלעכט כאָטש, רעכט? אין סדר פֿאַר אונדז צו געפֿינען אַ עלעמענט אין אַ לינגקט רשימה, צי יינציקווייַז אָדער דאַבלי לינגקט, מיר האָבן צו לינעאַר זוכן עס. מיר האָבן צו אָנהייב אין די אָנהייב און באַוועגן די סוף, אָדער אָנהייב אין די סוף באַוועגן צו די אָנהייב. מיר טאָן ניט האָבן ראַנדאָם צוטריט ענימאָר. אַזוי אויב מיר ניטאָ טאן אַ פּלאַץ פון שאַרף, אפֿשר אַ לינגקט רשימה איז ניט גאַנץ אַזוי גוט פֿאַר אונדז. זיי ניטאָ אויך טאַקע שווער צו סאָרט, רעכט? דער בלויז וועג איר קענען טאַקע סאָרט אַ לינגקט רשימה איז צו סאָרט עס ווי איר בויען עס. אבער אויב איר סאָרט עס ווי איר בויען עס, איר ניטאָ ניט מער מאכן שנעל ינסערטיאָנס ענימאָר. איר ניטאָ ניט נאָר טאַקקינג זאכן אַנטו די פראָנט. איר האָבן צו געפֿינען די רעכט אָרט צו שטעלן עס, און דעמאָלט דיין ינסערשאַן ווערט נאָר וועגן ווי שלעכט ווי ינסערטינג אין אַ מענגע. אַזוי לינגקט רשימות זענען נישט אַזוי גרויס פֿאַר סאָרטינג דאַטע. זיי ניטאָ אויך שיין קליין, גרייס-קלוג. דאַבלי לינגקט רשימה אַ ביסל גרעסערע ווי יינציקווייַז לינגקט רשימות, וואָס זענען אַ ביסל גרעסערע ווי ערייז, אָבער עס ס ניט אַ ריזיק סומע פון ​​ווייסטאַד פּלאַץ. אַזוי אויב פּלאַץ איז אין אַ פּרעמיע, אָבער ניט אַ טאַקע טיף פּרעמיע, דעם זאל זיין די רעכט וועג צו גיין. האַש טישן. ינסערשאַן אין אַ האַש טיש איז פאַירלי סטראַיגהטפאָרוואַרד. עס ס אַ צוויי-שריט פּראָצעס. ערשטער מיר דאַרפֿן צו לויפן אונדזער דאַטן דורך אַ האַש פֿונקציע צו באַקומען אַ האַש קאָד, און דעמאָלט מיר אַרייַנלייגן די עלעמענט אין דער האַש טיש אין אַז האַש קאָד אָרט. דילישאַן, ענלעך צו לינגקט רשימה, איז גרינג אַמאָל איר געפֿינען די עלעמענט. איר האָבן צו געפֿינען עס ערשטער, אָבער דעמאָלט ווען איר ויסמעקן עס, איר נאָר דאַרפֿן צו וועקסל אַ פּאָר פון פּוינטערז, אויב איר ניטאָ ניצן באַזונדער טשאַינינג. אויב איר ניטאָ ניצן פּראָובינג, אָדער אויב איר ניטאָ ניט ניצן טשאַינינג אין אַלע אין דיין האַש טיש, דילישאַן איז אַקטשאַוואַלי טאַקע גרינג. כל איר דאַרפֿן צו טאָן איז האַש די דאַטע, און דעמאָלט גיין צו אַז אָרט. און אַסומינג איר טאָן ניט האָבן קיין קאַליזשאַנז, איר וועט קענען צו ויסמעקן זייער געשווינד. איצט, לוקאַפּ איז ווו זאכן באַקומען אַ ביסל מער קאָמפּליצירט. עס ס אויף דורכשניטלעך בעסער ווי לינגקט רשימות. אויב איר ניטאָ ניצן טשאַינינג, איר נאָך האָבן אַ לינגקט רשימה, וואָס מיטל איר נאָך האָבן די זוכן שאָדן אַ לינגקט רשימה. אבער ווייַל איר ניטאָ גענומען דיין לינגקט רשימה און ספּליטינג עס איבער 100 אָדער 1,000 אָדער N יסודות אין דיין האַש טיש, איר ניטאָ לינגקט רשימות זענען אַלע איין ענט די גרייס. זיי ניטאָ אַלע סאַבסטאַנשאַלי קלענערער. איר האָבן N לינגקט רשימות אָנשטאָט פון איין לינגקט רשימה פון גרייס ען. און אַזוי דעם פאַקטיש-וועלט קעסיידערדיק פאַקטאָר, וואָס מיר בכלל טאָן ניט רעדן וועגן אין צייַט קאַמפּלעקסיטי, עס טוט טאקע מאַכן אַ חילוק דאָ. אַזוי לוקאַפּ איז נאָך לינעאַר זוכן אויב איר ניטאָ ניצן טשאַינינג, אָבער די לענג פון די רשימה איר ניטאָ שאַרף דורך איז זייער, זייער קורץ דורך פאַרגלייַך. ווידער, אויב סאָרטינג איז דיין ציל דאָ, האַש טיש ס מיסטאָמע נישט די רעכט וועג צו גיין. נאָר נוצן אַ מענגע אויב סאָרטינג איז טאַקע וויכטיק צו איר. און זיי קענען לויפן די גאַמע פון ​​גרייס. עס ס שווער צו זאָגן צי אַ האַש טיש איז קליין אָדער גרויס, ווייַל עס טאַקע דעפּענדס אויף ווי גרויס דיין האַש טיש איז. אויב איר 'רע נאָר געגאנגען צו זייַן סטאָרינג פינף יסודות אין דיין האַש טיש, און איר האָבן אַ האַש טיש מיט 10,000 יסודות אין עס, איר ניטאָ מיסטאָמע ווייסטינג אַ פּלאַץ פון אָרט. קאָנטראַסט ווייל איר קענען אויך האָבן זייער סאָליד האַש טישן, אָבער דער קלענערער דיין האַש טיש געץ, די מער יעדער פון די לינגקט רשימות געץ. און אַזוי עס ס טאַקע קיין וועג צו דעפינירן פּונקט די נומער פון אַ האַש טיש, אָבער עס ס מיסטאָמע זיכער צו זאָגן עס ס בכלל געגאנגען צו זיין ביגער ווי אַ לינגקט רשימה סטאָרינג דער זעלביקער דאַטע, אָבער קלענערער ווי אַ טריע. און טרייז זענען די פערט פון די סטראַקטשערז וואָס מיר ווע שוין גערעדט וועגן. ינסערטינג זיך אַ טריע איז קאָמפּליצירט. עס ס אַ פּלאַץ פון דינאַמיש זכּרון אַלאַקיישאַן, ספּעציעל אין די אָנהייב, ווי איר 'רע סטאַרטינג צו בויען. אבער עס ס קעסיידערדיק צייַט. עס ס נאָר דער מענטש עלעמענט דאָ אַז מאכט עס טריקי. ווייל צו טרעפן נאַל טייַטל, מאַללאָק פּלאַץ, גיין דאָרט, עפשער מאַללאָק פּלאַץ פֿון דאָרט ווידער. די סאָרט פון ינטימידיישאַן פאַקטאָר פון פּוינטערז אין דינאַמיש זכּרון אַלאַקיישאַן איז די כערדאַל צו קלאָר. אבער אַמאָל איר ווע קלירד עס, ינסערשאַן טאקע קומט גאַנץ פּשוט, און עס אַוואַדע איז קעסיידערדיק צייַט. אויסמעקונג איז גרינג. כל איר דאַרפֿן צו טאָן איז נאַוויגירן אַראָפּ אַ פּאָר פון פּוינטערז און פּאָטער די נאָדע, אַזוי אַז ס שיין גוט. לאָאָקופּ איז אויך שיין שנעל. עס ס נאָר באזירט אויף די לענג פון אייער דאַטע. אזוי אויב אַלע פון ​​אייער דאַטע איז פינף כאַראַקטער סטרינגס, לעמאָשל, איר ניטאָ סטאָרינג פינף כאַראַקטער סטרינגס אין אייער טריע, עס נאָר נעמט פינף טריט צו געפינען וואָס איר ניטאָ קוקן פֿאַר. פינף איז נאָר אַ קעסיידערדיק פאַקטאָר, אַזוי ווידער, ינסערשאַן, דילישאַן, און לוקאַפּ דאָ זענען אַלע קעסיידערדיק צייַט, Effectively. אן אנדער זאַך איז אַז אייער טריע איז אַקטשאַוואַלי מין פון שוין אויסגעשטעלט, רעכט? דורך מייַלע פון ​​ווי מיר ניטאָ ינסערטינג עלעמענטן, דורך געגאנגען בריוו דורך בריוו פון די שליסל, אָדער ציפֿער דורך ציפֿער פון די שליסל, טיפּיקאַללי, דיין טריע ענדס אַרויף ווייל מין פון אויסגעשטעלט ווי איר בויען עס. עס טוט ניט טאַקע מאכט זינען צו טראַכטן וועגן סאָרטינג אין דער זעלביקער וועג מיר טראַכטן וועגן עס מיט ערייז, אָדער לינגקט רשימות, אָדער האַש טישן. אבער אין עטלעכע זינען, דיין טריע איז אויסגעשטעלט ווי איר גיין. די דאַונסייד, פון קורס, איז אַז אַ טריע ראַפּאַדלי ווערט ריזיק. פון יעדער קנופּ פונט, איר זאל האַווע-- אויב דיין שליסל באשטייט פון דידזשאַץ, איר האָבן 10 אנדערע ערטער איר קענען גיין, וואָס מיטל אַז יעדער נאָדע כּולל אינפֿאָרמאַציע וועגן די דאַטע איר ווילן צו קראָם אין אַז נאָדע, פּלוס 10 פּוינטערז. וואָס, אויף קס50 ייד, איז 80 ביטעס. אַזוי עס ס לפּחות 80 ביטעס פֿאַר יעדער נאָדע אַז איר מאַכן, און אַז ס ניט אַפֿילו קאַונטינג דאַטע. און אויב דיין נאָודז זענען אותיות אַנשטאָט פון דידזשאַץ, איצט איר האָבן 26 פּוינטערז פון יעדער אָרט. און 26 מאל 8 איז מיסטאָמע 200 בייטן, אָדער עפּעס ווי אַז. און איר האָבן הויפּטשטאָט און לאָווערקאַסע-- איר קענען זען ווו איך בין געגאנגען מיט דעם, רעכט? דיין נאָודז קענען באַקומען טאַקע גרויס, און אַזוי די טריע זיך, קוילעלדיק, קענען באַקומען טאַקע גרויס, אויך. אַזוי אויב פּלאַץ איז אין אַ הויך פּרעמיע אויף אייער סיסטעם, אַ טריע זאל ניט זיין די רעכט וועג צו גיין, אַפֿילו כאָטש זייַן אנדערע Benefits קומען אין שפּילן. איך בין דאַג לויד. דאס איז קס50.