Тёмный

Lecture 9: Table Doubling, Karp-Rabin 

MIT OpenCourseWare
Подписаться 5 млн
Просмотров 234 тыс.
50% 1

MIT 6.006 Introduction to Algorithms, Fall 2011
View the complete course: ocw.mit.edu/6-006F11
Instructor: Erik Demaine
License: Creative Commons BY-NC-SA
More information at ocw.mit.edu/terms
More courses at ocw.mit.edu

Опубликовано:

 

13 янв 2013

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 167   
@sergeykholkhunov1888
@sergeykholkhunov1888 3 года назад
05:00 how to choose hash table size m 07:40 grow table 11:00 table doubling 14:30 amortization 21:32 shrink table 28:48 string matching example 37:30 rolling-hash ADT 40:32 Karp-Rabin string matching algorithm 48:05 build rolling-hash ADT with division hashing method Note: table doubling and karp-rabin actually seems as two unrelated topics, karp-rabin starts at 28:48
@ShafaetAshraf
@ShafaetAshraf 7 лет назад
if you are wondering why the professor wrote m>n, it's a mistake and he fixed it at 11:46. It should be n>m.
@arjanbal3972
@arjanbal3972 7 лет назад
Just left hackerrank to learn some theory, and guess who I found here!
@ShafaetAshraf
@ShafaetAshraf 7 лет назад
:)
@hangchen6131
@hangchen6131 6 лет назад
I stopped at 11:29 and scroll down to check my thought(can’t bare that m>n anymore..), and I see your post. :)
@meghna1915
@meghna1915 6 лет назад
same what I did immediately after pausing it :)
@rhac79
@rhac79 6 лет назад
I wonder why none of the students corrected him
@taraskuzyk8985
@taraskuzyk8985 3 года назад
I like how he started calculating how much rent he pays per second around 17:50, and said "one penny... that's actually pretty close, only off by a factor of two". He calculated immediately how many seconds there are in a month and divided with it 1500, and got 0.005 all within a second. And let's just disregard that it's off by a factor of 20, it's still impressive
@firehawk1293
@firehawk1293 3 года назад
I assume he started with the $50 a day. Then maybe he already knew there are about 100000 seconds in a day.
@free-palestine000
@free-palestine000 3 года назад
thank you erik and whoever decided to share this series. 5 years later and I'm learning from this.
@IAmNigHtMaReTR
@IAmNigHtMaReTR 2 года назад
Shouldn't you boycott Israel? Rabin is an Israeli professor
@free-palestine000
@free-palestine000 2 года назад
​@@IAmNigHtMaReTR aw man i wish I knew this before my test. wouldn't have learned this material if I knew he was israeli :/ thanks for looking out bud
@IAmNigHtMaReTR
@IAmNigHtMaReTR 2 года назад
@@free-palestine000 sure thing. Make sure you never use an Intel product as they have developing and manufacturing centers in Israel. Actualy don't use any tech that's been developed based on any of Albert Einstein's work, as he was also a Jew proud of the newly created state of Israel.
@randomnessslayer
@randomnessslayer 2 года назад
@@IAmNigHtMaReTR *** fixed your ambiguous phrasing. "[person] is associated to [thing] by virtue of being born in [a specific geographic region]. Therefore, not with any direct additional caveats or explanation, [blanket negative stereotype], because of [litany of reasons that have more to do with the stereotype than the person being stereotyped]"
@randomnessslayer
@randomnessslayer 2 года назад
@@IAmNigHtMaReTR en.m.wikipedia.org/wiki/Erik_Demaine this is the instructor, a Canadian-American. 🤔
@monoswitachatterjee4517
@monoswitachatterjee4517 3 года назад
Crystal clear concept visualization! He is indeed a great teacher!
@nackyding
@nackyding 5 лет назад
This guy is the BEST prof I've never seen! Ever.
@RahulRahul-pi5fm
@RahulRahul-pi5fm Год назад
In deletion I believe there is an error instead of m = n/2. It should have been when n = m/2 => shrink m to m/2. Same I believe is true for the next line n = m/4 then shrink m => m/2
@joebrady9829
@joebrady9829 10 лет назад
Great video as always but n and m are terrible variable names, it's hard to distinguish which one he's saying
@oneextrabit
@oneextrabit 11 лет назад
do not dislike free education
@websoftwaredeveloperijtiha3093
It's so cool that these top schools release courses like this one online free of charge. I may not get a chance to go to MIT
@deepdive1585
@deepdive1585 3 года назад
Love you a lot MIT!!
@lockersrandom6161
@lockersrandom6161 3 года назад
This is the only place where comments are very useful.
@wesleylim5932
@wesleylim5932 3 года назад
22:37 should be if n = m/2 then m=m/2
@cowboymc8230
@cowboymc8230 3 года назад
Agreed. Honestly, I am a bit upset when the genius prof at MIT continually makes mistakes like that. (He made a mistake earlier "when m>n ....". And the funny thing is, no one of those smart MIT students pointed out. (I am sure some of them spotted but just kept silent). I am not here by any means showing off or saying that I am better than them, but to be very honest, I found those two mistakes the next second he wrote up there. Such mistakes could be really confusing..... Sigh Overall, it's a good prof and a good lecture ofc.
@SouravKumar-cw3je
@SouravKumar-cw3je 2 года назад
I think he did same mistake for second idea also for deletion, It should be n = m/4, else it will not satisfy initial requirement i.e. "m should be atleast n"
@bboczeng
@bboczeng 9 лет назад
i have to say, this is much better than CS 170 here at Berkeley.
@nyc132132
@nyc132132 10 лет назад
Looks like the rolling hash given here may be wrong: at least according to the wikipedia the base of the encoding should be a large prime number and not |u| as described in the lecture (in u -> u-c*a^(|u|-1 |u| is assumed to be 256 which seems wrong. Needs to be a prime #). Also, on a side note, the lecturer said we needed the rolling hash for searching very long substrings to make the algo O(n) rather than O(n*k) . It appears that the simplest hash of summing up the chars' ASCII values (instead of the Karp Rabin which is very hard to implement) will produce relatively few collisions (statistically speaking).
@obinnaubah9045
@obinnaubah9045 5 лет назад
But what do you do if you do have collisions? Just use chaining?
@frankcastle3288
@frankcastle3288 5 лет назад
He said p is a prime number bigger than |U|
@xBl00dBrothersX
@xBl00dBrothersX 10 лет назад
Erik Demaine - former child prodigy - got his PhD at 20...
@carlosfonseca143
@carlosfonseca143 7 лет назад
Thank you, i just look up his name on google and he has his own website. In the website there is much more information that will help me with my computer programming career. Thank you so much.
@sportssarvies307
@sportssarvies307 7 лет назад
xBl00dBrothersX FROOTNAME
@farhadab
@farhadab 5 лет назад
someone should make a movie about him and his dad. according to wikipedia, he was home-schooled by his dad, who only had a high-school diploma. now they're both at MIT.
@deletedaccount2580
@deletedaccount2580 3 года назад
@@carlosfonseca143 thanks man ,I know from you,thanks for such info
@accessory2008
@accessory2008 9 лет назад
Letcture notes: ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/lecture-videos/MIT6_006F11_lec09.pdf
@samuel3242
@samuel3242 6 лет назад
28:47 string matching
@projectdocx4661
@projectdocx4661 5 лет назад
@12:26 I don't understand how the complexity for n insertions would be O(1+2+...n). When for each insertion it would take THETA(n+m+m').
@yantizeng6557
@yantizeng6557 6 лет назад
Haha there's a Chinese word(爱/愛) printed on his T-shirt. It means 'love'.
@budhachandrayumkhaibam6079
@budhachandrayumkhaibam6079 4 года назад
its also written in Gaara's forehead (left)
@aiproshar
@aiproshar 4 года назад
This table doubling example is totally messed up. And there is typo mistake in deletion part too. It is better understood using load factor alpha. Assume our load factor increases (alpha =n/m) as new items are inserted (n++). So when alpha passes a certain value(here 0.5 or can be 0.75 anything as bound), we double the table size so alpha is reduced to half. Same goes as deletion, we have a lower bound and when alpha falls behind that bound, we decrease m (usually m/2) so alpha is doubled :)
@israeladesanya262
@israeladesanya262 2 года назад
Nah. His explanation is more intuitive, and is basically identical to what you said.
@joshliu7076
@joshliu7076 2 года назад
33:35, should be range(len(t) - len(s) + 1)
@isbestlizard
@isbestlizard 3 года назад
rehashing sounds expensive! i would store the original hash with full precision so don't need to hash it again, just look and use the extra bit :O
@aleksagordic9593
@aleksagordic9593 6 лет назад
5:48 he: "pick your favorite constant" me: pi
@christopherjones7023
@christopherjones7023 5 лет назад
phi; pi works too. What flavor? :p
@zhegemingzigouchang
@zhegemingzigouchang 6 лет назад
I think on 32:13 , the python code should be "any (s==t [i: i+len(s)] for i in range(len(t) - len(s) +1))"
@grishound
@grishound 3 года назад
I agree
@aria5935
@aria5935 4 года назад
what does rs.append(c) mean? Is it to add the c to original string s and calculate the hash value of string s+c? or is it to calculate the hash value of original string s and minus the value by the hash value of character c?
@jackyjackson9886
@jackyjackson9886 5 лет назад
28:48 String matching
@isbestlizard
@isbestlizard 3 года назад
isn't the original algorithm also O(|t|) because you can skip if s[0] doesn't immediately match t[i] and it won't match more often than 1/|s|? You don't have to compare every character of s in every position, just the first.
@rstark
@rstark 2 года назад
Love it so damn much!
@user-gf7yo6uu1q
@user-gf7yo6uu1q 2 года назад
BUT how do we ensure that the hash functions do not go wrong, in comparing the strings?
@ddwatcher
@ddwatcher 4 года назад
I think it should theta(n+m') at 9:51 not theta(n+m+m') bcz we have m slots in the old table and on average we a have n/m elements in each slot, so to go through each element in the old table we need m*(n/m) i.e. theta(n) time and obviously theta(m') for creating new table and initialize each element to nil. Please correct me if I'm wrong.
@shabanashaikh1613
@shabanashaikh1613 2 года назад
It is worst case, so you can have one slot with n collisions and remaining m-1 so in total n + m - 1 + 1(you have to go through the slot with. N collisions)
@junzhai1715
@junzhai1715 3 года назад
3:29, should the last part of second hash function formula be >> (w-r)? He wrote >> 2^(r-w) which is not the same as last lecture.
@shabanashaikh1613
@shabanashaikh1613 2 года назад
Can anyone explain what is m=O(n) how bigoh is compared with size of table? And also for all operations to be O(1) we need alpha as 1 but then each key will have separate index so what is the use of this,. We could have done with simple array.
@saikirannaragam6394
@saikirannaragam6394 4 года назад
What is the difference between prehash and hash?
@sudhanshudey758
@sudhanshudey758 3 года назад
How does the r.skip() work? I didn't get the u-> u-c.a^... why did we do that?
@martinspage
@martinspage 6 лет назад
@ 33:42 should be range(len(t)-len(s) + 1 ) as far as I can tell.
@sanonp2324
@sanonp2324 5 лет назад
martin yep. Or the last len(s) characters in t will never be checked
@sharinganuser1539
@sharinganuser1539 3 года назад
To all those who want more understanding on Rabin Karp...go check R9th lecture . Victor explained really well... u'll not forget ur whole life...
@adventurer2395
@adventurer2395 Год назад
who? where?
@aayushanupam
@aayushanupam Год назад
@@adventurer2395 recitation 9. It is there in the playlist
@innostellarvtp4484
@innostellarvtp4484 3 года назад
At 24:40, do you think it should be m/4 items to increment the size again?
@HarikrishnaChikoti
@HarikrishnaChikoti 3 года назад
If you do that insertion Amortized time would not be constant and the function would become costly.
@redhotbits
@redhotbits 8 лет назад
on wiki they say the base is a prime!!
@user-ob1ii9vi4t
@user-ob1ii9vi4t 4 года назад
Love Erik lol.
@user-io1qf6zg6p
@user-io1qf6zg6p 2 года назад
what happens to r in skip operations? Is r
@BeatSyncBytes
@BeatSyncBytes 5 лет назад
wow amazing
@RIMJANESSOHMALOOG
@RIMJANESSOHMALOOG Год назад
I'd love to learn from a super geek like him
@sushantkumar4917
@sushantkumar4917 2 года назад
At 22:19 if m is the size of table and n is no of keys, then if keys is half the size of table i.e n = m/2 so we shrik the table, but why professor has written m = n/2 can anyone explain??
@nj9362
@nj9362 2 года назад
He mentions a way where inserts and deletes can be done in the worst case O(1) where you keep copying elements on the go. Can anyone share more information about that?
@OOO-wy5iw
@OOO-wy5iw Год назад
You didn't really watch the video
@shariquemohd9449
@shariquemohd9449 8 лет назад
Can anybody explain how did THETA(1+2+4+....+n) turned out to be THETA(n)? PS: I had forgotten about the approximation for large n. Got it now :D
@gwizdeq
@gwizdeq 8 лет назад
+mohammad sharique The key there is that this is a sum of geometric series: 1+2+4+8+...+n = 2^0+2^1+2^2+2^3+...+2^(log(n)) You can see that this will be a sum of log(n) first items in the series, and if you compute it, you will get 2n-1, which is Theta(n) Hope this helps! :)
@shariquemohd9449
@shariquemohd9449 8 лет назад
+Piotr Jan Yeah! I realized it later. Still thanks for your efforts :) Someone else might benefit from it.
@monffy58
@monffy58 7 лет назад
thanks!
@akshitagarwal98
@akshitagarwal98 6 лет назад
THANKS BRO..
@amuzak9063
@amuzak9063 4 года назад
Alternatively, using the gp summation formula, you get S=a((r^n) - 1)/(r-1) here a is 1, r is 2 and n is lg n so we get S=2^lgn - 1 which becomes n-1 which when you remove the constant gives a time complexity of n
@feiyijiang9167
@feiyijiang9167 5 лет назад
It's a little frustrating about the table doubling that if " m is bigger than n and less than 4n, the amortized time will be constant time". I guess it should be "m greater than 2n and less than 4n". Besides, in deletion part is it "m = 2n and m = 4m " rather than "m = n/2, m = n/4"? Could somebody answer my questions?
@RahulRahul-pi5fm
@RahulRahul-pi5fm Год назад
I believe what you are saying is correct. I checked lecture notes, over there it is correct.
@Victor-yn6jm
@Victor-yn6jm 4 года назад
Why is probability less than 1/s when the hash of two strings are equal and two strings are not equal?
@isbestlizard
@isbestlizard 3 года назад
because a good hash function should not give a collision between two unequal objects more frequently than 1/2^length in bits and presumably the hash being used is longer than lg s
@coding99
@coding99 6 месяцев назад
49:25 for choosing m
@ashutoshtiwari4398
@ashutoshtiwari4398 4 года назад
11:55 He start talking about the complexity when m = m' +1 and he writes O(1+2+3...+n). Could anyone explain me how this happen?
@amuzak9063
@amuzak9063 4 года назад
Initially we'll have to move over 1 element, then 2 elements, then 3, and so on
@user-jx8uz6tb6k
@user-jx8uz6tb6k 3 года назад
51:09 what is the point of multiplication u*a? I do not get the algorithm of appending and skipping
@Alejito222ful
@Alejito222ful 3 года назад
me neither
@Nipunraghav26
@Nipunraghav26 11 лет назад
Rabin-Karp Algo starts @ 40:45. :) :P
@lietlee9253
@lietlee9253 8 лет назад
愛!
@gwizdeq
@gwizdeq 8 лет назад
+Liuliet Lee What does it mean? :)
@lietlee9253
@lietlee9253 8 лет назад
+Piotr Jan it means love
@suzukikenta1079
@suzukikenta1079 7 лет назад
Can some explain at 31:00 in recitation 9 (ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-w6nuXg0BISo.html ), why hash and magic are computed hash * base + new mod, and magic * base mod p in append ?
@robertekis2450
@robertekis2450 2 года назад
I now see the difference between software engineering and software theory. An engineer knows that multiplies and divides are slow, not instantaneous and avoid them when possible. I suppose the guy here is trying to show general solutions, which usually isn't applicable to engineering. Still interesting since most of my training was in software engineering. Thanks for the videos MIT and Erik.
@randomnessslayer
@randomnessslayer 2 года назад
Division by a power of two is free basically. As simple as an n-bit shift. When it comes to theory, the generalization holds for most any division (a few caveats of course), for implementation, powers of two provide the engineer with adequate mod or division operations with simple binary trickery.
@suhasdotcom
@suhasdotcom 5 лет назад
Which textbook did he refer to @25:32 ?
@Nickel80
@Nickel80 4 года назад
As per the MIT course page, the book for the class was Introduction to Algorithms, 3rd edition. Reference: ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/readings/
@quangtran3403
@quangtran3403 6 лет назад
Can anybody explain why it is expected constant time at 45:21 ?
@steveye9894
@steveye9894 5 лет назад
I think Erik means that the "check whether" function takes THETA(|s|) time, which is THETA(1).
@steveye9894
@steveye9894 5 лет назад
Besides, The Amortized time of "check whether" should be THETA(1). Because, it is called only when hash(rs) and hash(rt) equals, but the possibility is sooooo small. The total time will be k1*THETA(|s|) + k2*THETA(1), k1 + k2 == |t| - |s|, and k2 >>>>>> k1.
@florianwicher
@florianwicher 6 лет назад
Does anyone know if there is special notation for amortized running time? I believe I once saw it being denoted as α() but I can't find anything on the web.
@hkleo
@hkleo 2 года назад
Nice short
@chengweili9516
@chengweili9516 8 лет назад
愛. Hahaha, I love Erik's T-shirts
@satadhi
@satadhi 7 лет назад
what does it say
@1988FENGFENG
@1988FENGFENG 7 лет назад
which equals `love`
@rj-nj3uk
@rj-nj3uk 2 года назад
I can understand how is theta(1+2+3+...+n) = theta(n^2)? Should not it be theta(n)??
@rrawat7288
@rrawat7288 8 лет назад
can anybody explain me the cost of n insertion at 12.26...? why it is 1+2+3... n
@mohamedahmed-fr7es
@mohamedahmed-fr7es 8 лет назад
if you increase the array by 1 so if we start from the beginning its initial size is 1 after we insert the first element we move" one" element to another array with size of 2 again after we insert the second element we increase the size to 3 and move "two" element to this array again and again until we reach the n element we have done (1+2+3+4 ....+n) rehashing every rehash cost o(1) so the answer will be the sum of this numbers .
@miraires
@miraires 7 лет назад
its actually like 8(1 + 2 + 3 .....) But because of Big O, we can ignore 8
@projectdocx4661
@projectdocx4661 5 лет назад
@@miraires It won't be 8 it would be THETA(n+m+m'), which you can't ignore. He clearly mentions, for each insertion, it's gonna take linear time.
@projectdocx4661
@projectdocx4661 5 лет назад
​@@mohamedahmed-fr7es The prof clearly mentions, "For each insertion AFTER n > m". So you cannot start with initial size 1. you have to start with initial size m holding in all n elements. And when you do that for each insertion it's gonna take THETA(n+m+m')
@florianwicher
@florianwicher 6 лет назад
Isn't that trick at 27:50 sort of "cheating"? If you make your constant big enough you can run almost every problem in what technically is constant time, no?
@israeladesanya262
@israeladesanya262 2 года назад
He wasn't implying that it can be a constant of any size, just "big enough" to make the algorithm work.
@slavkochepasov8134
@slavkochepasov8134 3 года назад
note 1) n>>m => grow=rebuild(m'); m>n => shrink = rebuild(m"); he just assumed it is obvious for anyone rebuild(m') == grow(m'). small inaccuracy but very annoying from terminology point.
@slavkochepasov8134
@slavkochepasov8134 3 года назад
note 2) m'=2m is "golden" and amortization pars are very confused cause he jumped over n>m'>>m assumption (for theoretical run time cost analysis). - with grow() at each +1 step until table reached finale size n. Tgrow = n grow steps * T_one_grow < n * O(n) = O(n^2). - with "golden" ratio 2 (2.7:). Tgrow = lg(n) grow steps * T_one_grow < lg(n) * O(n) = O(n*lg(n)) correct but inaccurate we can do better estimation of upper limit T = 1+2+4+8+..n = 2^i-1 (geometrical sum) where i grow steps = lg(n) => T < O(2^lg(n))= O(n) # Totality separated from that "amortized" over *different* k operations business. It is disregarding portion of runtime O(n) that is spred over big k operations. Where k >= n (final table size). He also goes into deriving T for k inserts only, etc. Hopefully that helps others to catch his derivations :) ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-BRO7mVIFt08.html
@slavkochepasov8134
@slavkochepasov8134 3 года назад
from practical run time our choice of hash function based on "mode m" makes grows_rate =2 golden :)
@tusherity
@tusherity 9 лет назад
The ones who doesnt like this video: "He is Prof in MIT". I think that should be enough
@BurgerBurglar8964
@BurgerBurglar8964 8 лет назад
+tusherity He also got bachelor degree at the age of 14, Ph.D at 20.
@AnimeshPaul23
@AnimeshPaul23 2 года назад
At 14:34 how can O(1 + 2 + 4 + ... + n) = O(n). This is a geometric series and the sum is 2 ^ n - 1
@raytso
@raytso 2 года назад
the n in the sum 2^n - 1 is not the same n in O(n). By the series equation the sum should be 2^(log n) - 1 since there's only log n "steps". Or rewrite it as O(1 + 2 + 4 + 8 +...+ 2^k) where n = 2^k and you'll understand.
@codethings271
@codethings271 7 лет назад
m=n+1
@roylee3196
@roylee3196 8 лет назад
cool stuff.
@Logan1selva
@Logan1selva 3 года назад
What is i ? I despirately need to clear this doubt...i apologise if i sound dumb im just a noob.would appreciate an answer.
@obinnaubah9045
@obinnaubah9045 5 лет назад
This is actually confusing at the end.
@alirezaghodsipoor2239
@alirezaghodsipoor2239 4 года назад
I didn't get a single point of K-R algorithm implementation.
@muazzakaria6390
@muazzakaria6390 3 года назад
@@alirezaghodsipoor2239 imagine you wanna check a sequence of DNA pattern. you have few candidates who have whole long ass pattern,
@davidjames1684
@davidjames1684 2 года назад
11:50 - choose better letters. You chose probably the 2 worst, that both look and sound alike.
@kevinryzack5712
@kevinryzack5712 5 лет назад
The last two minute explanation for calculating the new hash value from the previous hash value was pretty bad. Hopefully Victor can clear it up in recitation!
@hellaren
@hellaren 5 лет назад
If you wonder how new hash calculation works, you could check this video (ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-qQ8vS2btsxI.html) The author of this video has a perfect explanation of sliding hash calculation. Hope it will help
@JuanVargas-kw4di
@JuanVargas-kw4di 3 года назад
are the recitation videos available? what recitation are you talking about/ who is kevin?
@WeirdAlSuperFan
@WeirdAlSuperFan Год назад
23:37 what are k and 2^k?
@K4moo
@K4moo Год назад
It's 2^k and 2^k+1, the thresholds for shrink and grow is right adjacent to each other, and in an edge case where we insert / delete repeatly right on these thresholds, we will have to do allocation (linear time) for every operation
@panmacabre9895
@panmacabre9895 2 года назад
1+2+4+8+16+..n is geometric series , then the total would be like 2^n-1? what am I missing here
@WeirdAlSuperFan
@WeirdAlSuperFan Год назад
N is the final term after exponentiation, meaning the final index/exponent itself would be something that, applied to some number (say, 2) results in n. Call this final exponent "b." Then n = 2^b, and b is logn. In other words the sum index i goes from 1 (or 0, depending on how you write it) to b aka logn. So there are only logn terms. But anyway the sum would then be something like (2^logn) - 1, so n - 1 or O(n)
@petealwayslovesu
@petealwayslovesu 2 года назад
@kenichimori8533
@kenichimori8533 6 лет назад
Karp-Rabin algorithm.
@cagnusmarlsen4050
@cagnusmarlsen4050 3 года назад
whats written in his t-shirt
@jianhe
@jianhe 3 года назад
Love. Chinese character.
@cagnusmarlsen4050
@cagnusmarlsen4050 3 года назад
@@jianhe thanks man! much love!!
@codingmaster008
@codingmaster008 2 года назад
Gaara fan maybe
@projectdocx4661
@projectdocx4661 5 лет назад
Why does he use THETA every where?
@gompro
@gompro 5 лет назад
Because THETA is more accurate term, it means lower/upper bound at the same time. Technically it's different from big O or omega.
@Vflit
@Vflit Год назад
愛:Surely he loves algorithm and Computer Science!
@kevinc9987
@kevinc9987 4 года назад
@crjacinro
@crjacinro 3 года назад
m and n confuses me
@gigiduru125
@gigiduru125 11 лет назад
lol, didn't quite understand it even with the introduction
@obinnaubah9045
@obinnaubah9045 5 лет назад
Which part?
@jiejiefu
@jiejiefu 5 лет назад
愛[ài ] in Chinese means love
@codingmaster008
@codingmaster008 2 года назад
Naruto gaara fan maybe
@raymondlion314
@raymondlion314 5 лет назад
I am totally lost in this lecture.
@twittertalks3934
@twittertalks3934 3 года назад
did anyone else noticed youtube AI algorithm is recognising these lectures as chalk
@allandogreat
@allandogreat 2 года назад
Karp-Rabin is not clear.
@asdfghjkl1770
@asdfghjkl1770 5 лет назад
2019 April ? Before End Game?
@clairelolification
@clairelolification 4 года назад
愛 愛 愛 愛不停
@gregmakov2680
@gregmakov2680 4 года назад
hahah, co ke tuc toi qua choi, chem hinh tum lum am thi tum lum, chi zay, khung bo ha, so qua diii thang cho phat xit :D co nhieu len nua thang tuc toi phat xit
@george5120
@george5120 3 года назад
Instructor Erik Demaine wears his hair long and unkempt to distract from the fact that he has a bald spot. His personal appearance would improve if he emphasized looking well-groomed, regardless of whether being well-groomed further exposes the bald spot.
@israeladesanya262
@israeladesanya262 2 года назад
If that's ungroomed, you should see me.
@WeirdAlSuperFan
@WeirdAlSuperFan Год назад
Bro why you hating on Erik? He looks cool like that and anyway is a total beast. In any case, MIT people don't need to worry about their appearance. Their output speaks for itself. Also he's tall af, so he can get away with whatever and still look cool
@bioboy4519
@bioboy4519 11 месяцев назад
nice clothes
@davidjames1684
@davidjames1684 5 лет назад
In the real world, this bound crap is basically useless.
@israeladesanya262
@israeladesanya262 2 года назад
Yeah, fuck optimal implementations of built-in data structures, let's just eyeball things.
@ariassingh462
@ariassingh462 Месяц назад
@@israeladesanya262 That's literally how it works in the real world.
@yehcc7808
@yehcc7808 6 лет назад
Далее