Introduction to Data Structures & Algorithms
CodeWithHarry
This course is primarily for placement preparation and will be using C and C++ for the algorithms and
data structures. The notes for the course will be provided in PDF format for convenience. Data
structures are essential for developing efficient algorithms that arrange data in main memory for
optimal usage. It's important to note that algorithms and data structures are two different things. C is a
bare-bones programming language that requires you to do everything yourself, but Java can also be
used to implement algorithms. This course is ideal for those looking to switch jobs or prepare for
interviews, and there is a 15-hour video on C programming available on the channel with notes.
should be able to use it in your work or in your projects or in your courses or in your projects that you
are doing in the future or in your work that you are doing right now so if you want to use something
then you should be able to use it in your work or in your projects or in your courses or in your future
work or in your projects that you are doing right now . So data structures and algorithms are things that
help us in our work or in our projects or in our courses or in our future projects or in our work or in our
projects that we are doing right now so if you want to use something then you should be able to use it
in your work or in your projects or in your courses or in your future work or in your projects that you
are doing right nowwater in a pot and you put the tea bag in the cup and you make the coffee Now
what is the difference between data structures and algorithms? Algorithms are specific steps that need
to be taken in order to solve a problem.I have been in the industry for a long time now and I have seen
a lot of people learning C , C++ and when they start to learn it they get very lost & confused & they
don't know what they are doing & they don't know how to use the language properly & eventually they
stop learning it & they end up becoming a beginner again & that is not good for the industry & it is not
good for the learners either so I would say learn C , C++ & don't get lost in the language learning
process
Data structure is the arrangement of data in main memory, and the concept of database, data
warehouse, and big data will be covered in the course. The fuel of big algorithms is data, and keeping
it properly in the hard disk is essential for efficient retrieval, updating, and deletion. Although data
warehousing is beyond the scope of this course, it's still important to understand it. Data structures and
algorithms are best learned from C and C++, which provide a good picture of memory usage. The
concepts of stack and heap are essential in understanding how C programs work, and space and time
complexity will be covered in future videos. Overall, this course will cover many data structure
concepts, such as linked lists, arrays, binary search trees, and more.
a break for a while I understand that you are very busy for the next few days and I understand that you
are very busy for the next few weeks and I understand that you have a lot of questions so I 'll just stop
now and I 'll come back to you in a few days and we will start the next video where we will talk about
algorithms and data structures and then we will talk about interviews and then finally we will talk
about the final exam and you can ask me any questions that you have in your mind so that 's all for
now I 'll come back to you in a few days and we will start the next videowhat is the data structure of
chrome so now we see that the data structure is called RAM so the data structure of a database is
called RAM because when the program starts it will load into RAM the data structure of the database
which is called RAM . And then you will get to hear this and it is asked in the interviews, "tell me,
what is this?" So now let's understand database, data warehouse, and big data here we have understood
the data structure that when your program starts in RAM, it will load into the random access memory.I
want to keep the data in a different database so what I have to do is I have to create a new database and
,I have to name it `` legacyData '' I have to create a new table in that database and I have to add the
following column in the table `` Birthday `` I have to add the following column in the table `` Year ``
Now I have to run the program and I will get the following result in the console `` Facebook 2020 ``
Facebook 2021 `` Facebook 2009 `` `` Facebook 2020 `` Facebook 2021 `` Facebook 2009 `` ``
Facebook 2009 `` You retrieve and read the data from hard disk drive and update it.
know these three terms because big data is what we are talking about here .memory location where the
C program stores the data that is to be processed next and the heap is a memory location where the C
program stores the data that is to be processed next but the data that is to be processed next is not
always stored in the same location as the data that is to be processed next because the C program can
keep data in different memory locations depending on the situation and this is why it is important for
you to understand the stack and heap because you will be able to understand the C program better and
be able to ask more questions on the C program. Alright ... I 'm talking about C program that 's why I
say that you get a good picture of memory with the help of C programming therefore , data structures
and algorithms is best learned from C and C++ Now here I am dividing it into segments so there is
thing called code segment let 's say this is my code let 's say there is a code with the name `` harry.c ''
now this code will be first loaded into my main memory I told you what is the first thing that
happens ?then it will come to this line it will come to fun1 ( ) , it will execute fun1 ( ) . fun2 ( ) is
calling inside fun1 ( ) now the variables that I had created inside it will be created here let 's say I have
created `` k '' & `` l '' let me write here : initialize k and l and after that I 'm calling fun2 ( ) so as soon
as fun2 ( ) will be called it will say to fun1 ( ) that you wait for a while , I call fun2 ( ) and be back by
fetching the value whatever it will return fun1 ( ) replied that you go and get it call fun2 ( ) and get its
value .
know these three terms because big data is what we are talking about here .memory location where the
C program stores the data that is to be processed next and the heap is a memory location where the C
program stores the data that is to be processed next but the data that is to be processed next is not
always stored in the same location as the data that is to be processed next because the C program can
keep data in different memory locations depending on the situation and this is why it is important for
you to understand the stack and heap because you will be able to understand the C program better and
be able to ask more questions on the C program. Alright ... I 'm talking about C program that 's why I
say that you get a good picture of memory with the help of C programming therefore , data structures
and algorithms is best learned from C and C++ Now here I am dividing it into segments so there is
thing called code segment let 's say this is my code let 's say there is a code with the name `` harry.c ''
now this code will be first loaded into my main memory I told you what is the first thing that
happens ?then it will come to this line it will come to fun1 ( ) , it will execute fun1 ( ) . fun2 ( ) is
calling inside fun1 ( ) now the variables that I had created inside it will be created here let 's say I have
created `` k '' & `` l '' let me write here : initialize k and l and after that I 'm calling fun2 ( ) so as soon
as fun2 ( ) will be called it will say to fun1 ( ) that you wait for a while , I call fun2 ( ) and be back by
fetching the value whatever it will return fun1 ( ) replied that you go and get it call fun2 ( ) and get its
value .
me where do I give the milk to the milkman because the pointer will store the address of the malloced
memory so the milkman will get the milk from the pointer and the pointer will stay there until you
return the function or until you delete it.it will say to fun1 ( ) that you 're coming back and now you
can start your execution again . If anyone asks you this question, that why heap is used, it can also be
done from stack. So that thing is done here with the help of dynamic memory because when does the
stack of a function end it ends when the function is returned. I just come back with the value you just
wait here. You go and get it and then what will happen, fun function will be called.
me where do I give the milk to the milkman because the pointer will store the address of the malloced
, memory so the milkman will get the milk from the pointer and the pointer will stay there until you
return the function or until you delete it.it will say to fun1 ( ) that you 're coming back and now you
can start your execution again . If anyone asks you this question, that why heap is used, it can also be
done from stack. So that thing is done here with the help of dynamic memory because when does the
stack of a function end it ends when the function is returned. I just come back with the value you just
wait here. You go and get it and then what will happen, fun function will be called.
this video we will focus on linked list & binary search tree so if you want to know more about these
then you should go ahead and watch the video and learn more about these things . If you still think that
you want to do all of these things with Python, then I am saying that when you will go for an
interview, the person in front of you will expect C, C++, or Java from you.
Time Complexity and Big O Notation (with notes)
CodeWithHarry
So the input size didn't increase and the runtime of the algorithms didn't increase either .No , it doesn't
depend on the size of the input . When we ask questions like as the input will increase, Then the
runtime will change as per what? And after that Now you will go to aunty's house You will be treated.
Consider there are different routes to come and go.
I want to tell you guys one story. It happened like this , I was bored in my house. I was so bored that I
needed some entertainment. This guy has amazing games like Pubg and GTA5. So he has a collection
of games. He likes playing games a lot. And you can get every type of game from him. But there is
one problem , I also use jio. He also uses jio and we get just 1 Gb for one day. And with more
internet , we ca n't sell files and all. So for me , what is the fastest way to take the game from this
friend. So what will I do ? I will take my bike As the size of this input will get increased, the runtime
of the algorithms will increase. This means that as the input size is increasing like that The time
required to send the file , That is also increasing. There is a hard disk then there is your motorcycle.
You will go on that bike. And you will take it and in hard disk whether you bring 250kb or Tb. As the
input size of algo2 increased like that what happened ? For that , there was no change in the runtime.
Runtime remained the same. So we say as the size of the input keeps on increasing , Similarly, what is
the effect of the algorithm on runtime. We are to trying to remove the time complexity of them.
is the algorithm that runs in constant time . K1 n to the power 0+k2+k3+k4 This time is required in
algo 2 .The sentence is: Run time of it, there are some things that we will recite. Because we won't
constantly use our brains again and again, as we see Big O of 1 it is constant. Now, come here and
listen to another story. If we do an analysis of the first algorithm, If I do T algo1 Then what will
happen here? And along with consider that game is of L3 kb. If the game is of N kb then how much
time will you need? The sentence is: Run time of it, there are some things that we will recite.There are
polynomial algorithms and there are exponential algorithms and there are logarithmic algorithms and
there are exponential functions and there are logarithmic functions. There are also algorithms that are
not linear in time.
We are not studying algorithms, we are listening to a story. We are doing a real-world analysis of
things. Big O is called a constant runtime algorithm. Because it was constant we remove n to power 0
and make it 1. So this is Big O of n to the power 0. If I do T algo1 then what will happen here ? What
do I have to do ? When I am sending data then I must upload and send. My main time is required in
that ok. Now, considering I turn on my computer In that , I will need time L1 After that what happened
CodeWithHarry
This course is primarily for placement preparation and will be using C and C++ for the algorithms and
data structures. The notes for the course will be provided in PDF format for convenience. Data
structures are essential for developing efficient algorithms that arrange data in main memory for
optimal usage. It's important to note that algorithms and data structures are two different things. C is a
bare-bones programming language that requires you to do everything yourself, but Java can also be
used to implement algorithms. This course is ideal for those looking to switch jobs or prepare for
interviews, and there is a 15-hour video on C programming available on the channel with notes.
should be able to use it in your work or in your projects or in your courses or in your projects that you
are doing in the future or in your work that you are doing right now so if you want to use something
then you should be able to use it in your work or in your projects or in your courses or in your future
work or in your projects that you are doing right now . So data structures and algorithms are things that
help us in our work or in our projects or in our courses or in our future projects or in our work or in our
projects that we are doing right now so if you want to use something then you should be able to use it
in your work or in your projects or in your courses or in your future work or in your projects that you
are doing right nowwater in a pot and you put the tea bag in the cup and you make the coffee Now
what is the difference between data structures and algorithms? Algorithms are specific steps that need
to be taken in order to solve a problem.I have been in the industry for a long time now and I have seen
a lot of people learning C , C++ and when they start to learn it they get very lost & confused & they
don't know what they are doing & they don't know how to use the language properly & eventually they
stop learning it & they end up becoming a beginner again & that is not good for the industry & it is not
good for the learners either so I would say learn C , C++ & don't get lost in the language learning
process
Data structure is the arrangement of data in main memory, and the concept of database, data
warehouse, and big data will be covered in the course. The fuel of big algorithms is data, and keeping
it properly in the hard disk is essential for efficient retrieval, updating, and deletion. Although data
warehousing is beyond the scope of this course, it's still important to understand it. Data structures and
algorithms are best learned from C and C++, which provide a good picture of memory usage. The
concepts of stack and heap are essential in understanding how C programs work, and space and time
complexity will be covered in future videos. Overall, this course will cover many data structure
concepts, such as linked lists, arrays, binary search trees, and more.
a break for a while I understand that you are very busy for the next few days and I understand that you
are very busy for the next few weeks and I understand that you have a lot of questions so I 'll just stop
now and I 'll come back to you in a few days and we will start the next video where we will talk about
algorithms and data structures and then we will talk about interviews and then finally we will talk
about the final exam and you can ask me any questions that you have in your mind so that 's all for
now I 'll come back to you in a few days and we will start the next videowhat is the data structure of
chrome so now we see that the data structure is called RAM so the data structure of a database is
called RAM because when the program starts it will load into RAM the data structure of the database
which is called RAM . And then you will get to hear this and it is asked in the interviews, "tell me,
what is this?" So now let's understand database, data warehouse, and big data here we have understood
the data structure that when your program starts in RAM, it will load into the random access memory.I
want to keep the data in a different database so what I have to do is I have to create a new database and
,I have to name it `` legacyData '' I have to create a new table in that database and I have to add the
following column in the table `` Birthday `` I have to add the following column in the table `` Year ``
Now I have to run the program and I will get the following result in the console `` Facebook 2020 ``
Facebook 2021 `` Facebook 2009 `` `` Facebook 2020 `` Facebook 2021 `` Facebook 2009 `` ``
Facebook 2009 `` You retrieve and read the data from hard disk drive and update it.
know these three terms because big data is what we are talking about here .memory location where the
C program stores the data that is to be processed next and the heap is a memory location where the C
program stores the data that is to be processed next but the data that is to be processed next is not
always stored in the same location as the data that is to be processed next because the C program can
keep data in different memory locations depending on the situation and this is why it is important for
you to understand the stack and heap because you will be able to understand the C program better and
be able to ask more questions on the C program. Alright ... I 'm talking about C program that 's why I
say that you get a good picture of memory with the help of C programming therefore , data structures
and algorithms is best learned from C and C++ Now here I am dividing it into segments so there is
thing called code segment let 's say this is my code let 's say there is a code with the name `` harry.c ''
now this code will be first loaded into my main memory I told you what is the first thing that
happens ?then it will come to this line it will come to fun1 ( ) , it will execute fun1 ( ) . fun2 ( ) is
calling inside fun1 ( ) now the variables that I had created inside it will be created here let 's say I have
created `` k '' & `` l '' let me write here : initialize k and l and after that I 'm calling fun2 ( ) so as soon
as fun2 ( ) will be called it will say to fun1 ( ) that you wait for a while , I call fun2 ( ) and be back by
fetching the value whatever it will return fun1 ( ) replied that you go and get it call fun2 ( ) and get its
value .
know these three terms because big data is what we are talking about here .memory location where the
C program stores the data that is to be processed next and the heap is a memory location where the C
program stores the data that is to be processed next but the data that is to be processed next is not
always stored in the same location as the data that is to be processed next because the C program can
keep data in different memory locations depending on the situation and this is why it is important for
you to understand the stack and heap because you will be able to understand the C program better and
be able to ask more questions on the C program. Alright ... I 'm talking about C program that 's why I
say that you get a good picture of memory with the help of C programming therefore , data structures
and algorithms is best learned from C and C++ Now here I am dividing it into segments so there is
thing called code segment let 's say this is my code let 's say there is a code with the name `` harry.c ''
now this code will be first loaded into my main memory I told you what is the first thing that
happens ?then it will come to this line it will come to fun1 ( ) , it will execute fun1 ( ) . fun2 ( ) is
calling inside fun1 ( ) now the variables that I had created inside it will be created here let 's say I have
created `` k '' & `` l '' let me write here : initialize k and l and after that I 'm calling fun2 ( ) so as soon
as fun2 ( ) will be called it will say to fun1 ( ) that you wait for a while , I call fun2 ( ) and be back by
fetching the value whatever it will return fun1 ( ) replied that you go and get it call fun2 ( ) and get its
value .
me where do I give the milk to the milkman because the pointer will store the address of the malloced
memory so the milkman will get the milk from the pointer and the pointer will stay there until you
return the function or until you delete it.it will say to fun1 ( ) that you 're coming back and now you
can start your execution again . If anyone asks you this question, that why heap is used, it can also be
done from stack. So that thing is done here with the help of dynamic memory because when does the
stack of a function end it ends when the function is returned. I just come back with the value you just
wait here. You go and get it and then what will happen, fun function will be called.
me where do I give the milk to the milkman because the pointer will store the address of the malloced
, memory so the milkman will get the milk from the pointer and the pointer will stay there until you
return the function or until you delete it.it will say to fun1 ( ) that you 're coming back and now you
can start your execution again . If anyone asks you this question, that why heap is used, it can also be
done from stack. So that thing is done here with the help of dynamic memory because when does the
stack of a function end it ends when the function is returned. I just come back with the value you just
wait here. You go and get it and then what will happen, fun function will be called.
this video we will focus on linked list & binary search tree so if you want to know more about these
then you should go ahead and watch the video and learn more about these things . If you still think that
you want to do all of these things with Python, then I am saying that when you will go for an
interview, the person in front of you will expect C, C++, or Java from you.
Time Complexity and Big O Notation (with notes)
CodeWithHarry
So the input size didn't increase and the runtime of the algorithms didn't increase either .No , it doesn't
depend on the size of the input . When we ask questions like as the input will increase, Then the
runtime will change as per what? And after that Now you will go to aunty's house You will be treated.
Consider there are different routes to come and go.
I want to tell you guys one story. It happened like this , I was bored in my house. I was so bored that I
needed some entertainment. This guy has amazing games like Pubg and GTA5. So he has a collection
of games. He likes playing games a lot. And you can get every type of game from him. But there is
one problem , I also use jio. He also uses jio and we get just 1 Gb for one day. And with more
internet , we ca n't sell files and all. So for me , what is the fastest way to take the game from this
friend. So what will I do ? I will take my bike As the size of this input will get increased, the runtime
of the algorithms will increase. This means that as the input size is increasing like that The time
required to send the file , That is also increasing. There is a hard disk then there is your motorcycle.
You will go on that bike. And you will take it and in hard disk whether you bring 250kb or Tb. As the
input size of algo2 increased like that what happened ? For that , there was no change in the runtime.
Runtime remained the same. So we say as the size of the input keeps on increasing , Similarly, what is
the effect of the algorithm on runtime. We are to trying to remove the time complexity of them.
is the algorithm that runs in constant time . K1 n to the power 0+k2+k3+k4 This time is required in
algo 2 .The sentence is: Run time of it, there are some things that we will recite. Because we won't
constantly use our brains again and again, as we see Big O of 1 it is constant. Now, come here and
listen to another story. If we do an analysis of the first algorithm, If I do T algo1 Then what will
happen here? And along with consider that game is of L3 kb. If the game is of N kb then how much
time will you need? The sentence is: Run time of it, there are some things that we will recite.There are
polynomial algorithms and there are exponential algorithms and there are logarithmic algorithms and
there are exponential functions and there are logarithmic functions. There are also algorithms that are
not linear in time.
We are not studying algorithms, we are listening to a story. We are doing a real-world analysis of
things. Big O is called a constant runtime algorithm. Because it was constant we remove n to power 0
and make it 1. So this is Big O of n to the power 0. If I do T algo1 then what will happen here ? What
do I have to do ? When I am sending data then I must upload and send. My main time is required in
that ok. Now, considering I turn on my computer In that , I will need time L1 After that what happened