may use some concrete example like n = 1million and FP<1% and showing math will be helpful.
@Worse_than_you_can_imagine6 күн бұрын
PRISM and CIA in one video? Next you're going to tell me MLK wasn't assassinated by the FBI, the CIA didn't introduce crack to the inner city, and 9/11 was a surprise. How much dark money is an evolutionary biologist taking to promote The Pentagon's agenda? Get vaccinated. 🤭
@soumyajitchatterjee58229 күн бұрын
Beautiful
@linnaeusbundalian929012 күн бұрын
Hello. I cannot access the file (lecture slides)
@niemasd11 күн бұрын
Woops, thank you for catching that! I archived a lot of my teaching-related files from past quarters, and I forgot that the lecture slides for this course were being linked in the KZbin descriptions. I am away from my computer at the moment, but I'll repost them soon, and I'll follow up in another reply to this comment when I do
@niemasd10 күн бұрын
Okay, I just updated the links to all of the lecture slides in this playlist, so it should work now! Please feel free to comment again on any of them if the link seems broken. Thanks again for catching this 🙂
@linnaeusbundalian929010 күн бұрын
@@niemasd thanks a lot for sharing
@mlemImlem26 күн бұрын
very good explanation thank you for teaching this
@InsocialDevАй бұрын
Abstract data type is basically the abstraction of data structure at the user-level ( high-end programming)
@niemasdАй бұрын
@@InsocialDev Essentially! I would personally slightly adjust it and say that an Abstract Data Type is an abstraction of a container, and that we can use Data Structures to *implement* ADTs. In other words, I would start with the abstract (the ADT essentially just defines what operations *should exist*, without any details about how they work or how fast they are), and then transition to the concrete (the Data Structure then defines *how* the operations will work, and as a result, how fast they will be). But both ways of thinking are essentially equivalent 😄
@InsocialDevАй бұрын
@@niemasd Thanks for the correction🥰
@niemasdАй бұрын
@@InsocialDev Thank you for watching the video! 😄
@ilioscioАй бұрын
This is just what I was looking for, thanks for the information
@dmytroboiko12 ай бұрын
This is super useful, thanks!
@MadpolygonDEV2 ай бұрын
I wish it included an example in the end where you showed how we could find point within a threshold, as in find the closest points to a target etc. great video though
@onescYT2 ай бұрын
Wow
@dkkogmaw13112 ай бұрын
but this approach leading to cache misses if we use linked lists for collisions or am I wrong?
@niemasd2 ай бұрын
Great insight! Yes, in practice, it is common to use an array-based structure (e.g. an Array List) as the separation chain, but it's ultimately up to the implementation
@ArshamMikaeili-xy1td2 ай бұрын
Great talk! Special thank to Neima and Dr. Carter.
@ranasameh20862 ай бұрын
thanks ❤
@channelname94682 ай бұрын
why talk about linear probing in a video about double hashing
@48_subhambanerjee222 ай бұрын
LOVE FROM INDIA ❤❤
@amyyy433 ай бұрын
very underrated video!
@warguy64743 ай бұрын
dayum prof niema the goat even back then, time to get back to study for cse100 final 🐐🐐🐐🐐🐐
@niemasd3 ай бұрын
LOL I've been super into console hacking since middle school! Been doing this a loooong time 😂 Good luck with the final!!
@sonofgod003 ай бұрын
But i am still trying to understand the time complexity
@sonofgod003 ай бұрын
Thanks for making DFS BFS simple
@SINDRASENAGOWDU3 ай бұрын
i cant understand the hard example ..please explain
@Xn_Fdez3 ай бұрын
Gracias por el video máquina! Muy buena explicación.
@SirajahamedDharmayath3 ай бұрын
What happens if the keys are in ascending order and priorities are in descending order? Won't the treap become skewed and lose the balanced property? How is this handled?
@niemasd3 ай бұрын
Yes, that is the worst case scenario for a Treap (keys and priorities are both sorted), which results in O(n) time complexity just like the BST worst case. You'll how Treaps are useful (and how this worst case scenario becomes unlikely in practical uses) in the Randomized Search Tree video
@zuowang51853 ай бұрын
and you didn't finish the video? just left with a not optimal solution
@niemasd3 ай бұрын
It continues in the next video in the playlist... kzbin.info/aero/PLM_KIlU0WoXmkV4QB1Dg8PtJaHTdWHwRS&si=ZZkCLwbNvCIhDwdF
@jy69603 ай бұрын
nice
@skiller1794 ай бұрын
u the best
@dzungdoan67744 ай бұрын
in case 2 if I insert a new node to a black parent it violates the depth. will it still considered case 2 or not?
@niemasd4 ай бұрын
I'm not sure I understand your question; can you clarify? New nodes are inserted as red nodes, so if the new red node has a black parent, no need to do anything: it's already valid
@nottofind5 ай бұрын
What is the DOI of the original Burrows Wheeler Transformation Paper? I can't find it :/ Great explanation though!
@niemasd5 ай бұрын
Great question! BWT was originally not intended for this task (it was originally intended for data compression), and the original BWT paper can be found here: www.eecs.harvard.edu/~michaelm/CS222/burrows-wheeler.pdf *To my knowledge*, this is the first paper that applies BWT to the "match a bunch of short strings to a single long string" problem in Bioinformatics: doi.org/10.1186%2Fgb-2009-10-3-r25 Also, *to my knowledge*, this is the first paper that applies BWT to genomic data: doi.org/10.1089/cmb.2005.12.943
@MathComputerScienceTradi-ge7tw5 ай бұрын
But how to implement in code
@yesyas59725 ай бұрын
All clear, thanks
@traindeluxe37895 ай бұрын
Great explanation. what tool do you use to draw and how do you send the output to main screen?
@niemasd5 ай бұрын
Thank you! I wrote a guide about my workflow here (I use a Paint-like drawing tool, and I use OBS to capture the drawing canvas): github.com/niemasd/teaching/blob/master/Tutorials/VideosKhanAcademy.md
@thaidoan8685 ай бұрын
God bless you
@MahmoudBacha.r.s_personal5 ай бұрын
clear and useful , thanks
@mr.rabbit56425 ай бұрын
Ok but how does that sequence help us with actual matching of the query strings? How much better is "can we do better than log?"?
@RLLLx5 ай бұрын
This is impressive! How do people come up with this kind of algorithm?!
@onescYT2 ай бұрын
right? we are standing on the shoulders of giants
@williamhogrider41366 ай бұрын
Thank you
@sutibn6 ай бұрын
Very cool!
@Mr_Rough6 ай бұрын
Finally found somebody explaining the difference between them ....... clearly. Thank you Mr. Niema Moshiri 👍👍💕💕🌹🌹
@danielnzuma90706 ай бұрын
Take home Not all Red black trees are AVL trees
@niemasd6 ай бұрын
Precisely! Red-Black Trees are still guaranteed to have O(log n) height in the worst case, but they don't necessarily maintain the balance factor requirements that an AVL Tree does
@alex_lamarche7 ай бұрын
Incredibly concise!
@dennissavchenko7 ай бұрын
How to prove that 2N(h-2) >= 2^(h/2)?
@niemasd7 ай бұрын
I prove it in the "Notes/Corrections" in the video description
@frogman73457 ай бұрын
Thank you couldn't Uni without it
@suzyho73227 ай бұрын
thanks
@jonsentio31507 ай бұрын
the complexity of BFS comes from the traversal itself (O(V+E)), you are misleading for that!
@niemasd7 ай бұрын
The traversal itself is not O(V + E). Imagine you have a complete graph with V-1 nodes (so (V-1)(V-2)/2 edges), and you have a single additional node on its own unattached. BFS starting at that single additional node will finish instantly because it has no outgoing edges. BFS traversal starting from a single vertex is bounded by the edges you are able to traverse, not the number of vertices (there are many vertices you may possibly never be able to encounter if there are no edges connecting to them). The O(V) term comes from initialization (or if you chose to perform repeated BFS traversals to force yourself to explore the whole graph). A single BFS traversal starting from a single node is O(E)
@niemasd7 ай бұрын
Oh, just realized which video this is in response to LOL so not sure if it was just a meme comment 😂 But figured I'd respond just in case!
@peggyw56287 ай бұрын
Thank you !👍🏻
@tino_8 ай бұрын
Thank you so much :)
@shahrozsaleem34718 ай бұрын
How will this automaton help in the following scenario? I have keywords to search are: - GATEWAYS - ATE I want to search them in the following text: “The gateway is long” Here when we will be at vertex from an edge ‘y’ then we will not have any child so we will go through failure link to root. But during this we missed that ATE existed.
@niemasd8 ай бұрын
Excellent question! This is actually described in the next video of the series. Specifically, we will be able to catch those cases via "dictionary links": kzbin.info/www/bejne/hXeuqYp8mtySgpI
@alexandersmirnov42748 ай бұрын
why not using prefix array instead?
@niemasd8 ай бұрын
You could use a prefix array as well! We're looking for occurrences of the short string as a substring of the long stream, and using a suffix array exploits the fact that, if a string x appears as a substring of string y, then there must exist a suffix of y that begins with x. If we were to use a prefix array instead, we would exploit the fact that, if a string x appears as a substring of string y, then there must exist a prefix of y that *ends* with x. In other words, we would essentially do our binary search backwards. Another way to think about it is that using a prefix array would be equivalent to reversing the long string and the short strings and using a suffix array
@thoracicformula8 ай бұрын
I needed somewhere to learn bioinformatics aside from my lab so I'll start here