100% satisfaction guarantee Immediately available after payment Both online and in PDF No strings attached
logo-home
Mastering Data Structures and Algorithms: A Comprehensive Guide $7.99   Add to cart

Class notes

Mastering Data Structures and Algorithms: A Comprehensive Guide

 1 view  0 purchase
  • Course
  • Institution

This document is a comprehensive guide to data structures and algorithms. It covers various topics such as sorting, searching, trees, graphs, hashing, linked lists, arrays, stacks, queues, heaps, recursion, dynamic programming, greedy algorithms, and divide and conquer. The document provides an in-...

[Show more]

Preview 4 out of 65  pages

  • April 2, 2023
  • 65
  • 2022/2023
  • Class notes
  • Harry
  • All classes
avatar-seller
Introduction to Data Structures & Algorithms

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. If
you don't know C properly, then I have made a 15-hour long video of C with notes.
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. If
you don't know C properly, then I have made a 15-hour long video of C with notes.


Time Complexity and Big O Notation (with notes)

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 ? Consider all preparation I required L1
which will be a constant 5 secs,2 secs , 10 secs. If there is an SSD in your computer then it
will open in 4 secs If you are using a supercomputer then it can even open in 1 sec. L1+
consider your speed is L2. Ok, so it takes a constant speed of your This is not equal to.
Writing equal to is wrong here. So here I will say that The most difference that will be visible
It will be because of this term. Because n to power 1 , if I increase input and make it 10 lakh.
So this was of 2 lines but this will become 10 lakhs. So the higher degree term in the
polynomial In any equation The most impactful term It is taken ok. So I picked this because
in comparison with n to the power 0 it is big. And I want to see things in a simple way.
Big O of n square. Big O is a log that scales according to the time required to run your
algorithm. Linearly if your time scales with the input size. If it runs in linear time Big O. If your
time runs in constant time, Big O is 1 ok. O in the industry means the order of And its
mathematical definition that I will tell you. Industry definition is a minimum of this. But when
you are answering in industry Then industry definition is used. When I use its mathematical
definition then I say Big O But when I give industry definition Or I am answering any interview.
Then I will say an order of because big O has a different definition. But they are used
interchangeably. The graph of Big O of 1 is plotted like this. It does not mean it is 1 's graph.
Do n't confuse it with the x=1 graph. This is the graph of x=k. Constant , whatever constant
was there in constant time it was running. And this y=mx+c It can be somewhat distorted.
Time complexity is the study of the efficiency of algorithms. How time taken to execute an
algorithm Grows with the size of the input. Time will increase and time will increase or
decrease. Here I am giving a real-world example because the examples we took were very
naive. They were very simple. Shubham 's algorithm took 180ms. And over there Rohan's
algorithm was around 120-130ms. It took 121 ms. After that when I gave 1000 elements for
their algorithms , Then shubham's algorithm got busted over there. But Rohan "s algorithm
did it in 800 ms. Both are better in their places. In this way we analyze algorithms. take the
highest order term. After that, we will add in Big O. And Big O n square square is here. And

The benefits of buying summaries with Stuvia:

Guaranteed quality through customer reviews

Guaranteed quality through customer reviews

Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.

Quick and easy check-out

Quick and easy check-out

You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.

Focus on what matters

Focus on what matters

Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!

Frequently asked questions

What do I get when I buy this document?

You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.

Satisfaction guarantee: how does it work?

Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.

Who am I buying these notes from?

Stuvia is a marketplace, so you are not buying this document from us, but from seller yogendrrathod. Stuvia facilitates payment to the seller.

Will I be stuck with a subscription?

No, you only buy these notes for $7.99. You're not tied to anything after your purchase.

Can Stuvia be trusted?

4.6 stars on Google & Trustpilot (+1000 reviews)

83750 documents were sold in the last 30 days

Founded in 2010, the go-to place to buy study notes for 14 years now

Start selling
$7.99
  • (0)
  Add to cart