Summary Introduction to Algorithms, third edition, ISBN: 9780262258104 CSC-249 (CSC-249)
6 views 0 purchase
Course
CSC-249 (CSC249)
Institution
Iqra University
Book
Introduction to Algorithms, third edition
The Algorithm Description Document (ADD) provides the detailed representation of the algorithms and equations utilized in the system and the system components. The ADD documents the life-cycle of the algorithms and includes trade study analyses with validation results to illustrate the algorithm de...
Solutions Manual for A Practical Introduction to Data Structures and Algorithm Analysis Second Edition Clifford A. Shaffer
Introduction to Algorithms 3rd Edition Solution Manual
Data Structures and Algorithms Summary (2021-2022)
All for this textbook (4)
Written for
Iqra University
CSC-249 (CSC249)
All documents for this subject (2)
Seller
Follow
shariq
Content preview
DATA STRUCTURES AND ALGORITHMS (NOTES)
INTRODUCTION TO DATA STRUCTURES & ALGORITHMS
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 now water 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
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 video what 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 this is?" 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 `` legacy Data ''.
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
1|Page
,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 mellowed
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.
Time Complexity and Big O Notation
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.
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.
Asymptotic Notations: Big O, Big Omega and Big Theta
Explained
We 'll talk a little bit about asymptotic notation. we talked about order. We talked about ordering. We
have primarily 3 types of asymptic notation big O, big Theta (Θ ) and big Omega (Ω) big O is
represented by capital (O), which is in our English. Big O is set to be O ( g ( n ) ) if and only if there
exist a constant ( c ) and a constant n -node such that 0 ≤ f ( n) ≤ cg (n) is O (g (N) If you watch this
video completely then I guarantee that you will understand these three notations. Mathematically,
mathematically this function can be anything. When we do analysis of algorithms comparing any 2
algorithms then f ( n ) will be time and what is n , it 's input ok , size of input. G ( n) is your function
which will come inside the big O. O ( n²) is Anything Can Be Algorithm it is g (n) that will be here
and which is your algorithm. If you guys can find any such constant ( C ) and ( n ) -node , then f ( n)
is O ( g ( n)" This is the mathematical definition of big O. If you ca n't find it then its is not f (n ) is O.
This question is its own truth , it has validity , it will remain valid.
2|Page
, Best Case, Worst Case and Average Case Analysis of an
Algorithm
To define an algorithm, To define the events in the life of an algorithm , We have , Best Case Worst
Case and Expected Case. And along with that, I 've packed one more thing into this video : The
definition of Log. If you watch this video till the end , Then you will find out what this 'Log ' really is.
1. . . 5. . . 7. . . 9 and 24 are the numbers in it; They 're in ascending order , You can see for yourself.
If you know even a bit of maths, You 'll know that it is in an ascending order. Now what I say is that I
'll give a number : 'A' And I 'd like you to tell me If this number exists within the array , or not.
Suppose the value of A is 8. So what will be your answer ? Yes. Meaning 1. If A is. . . Sorry, your
answer will be no , because it is n't there. If the value is 9, What will the answer be ? Your answer will
Algo 1 is a simple person. It does n't have much of a brain. It is comparing it with all the numbers. Is
this the best way to do this work ? Obviously not. Because Algo. 1 is lucky , He will get A=1. It will
tell us in the first comparison itself. In one comparison only.
If Algo 1 is in luck, The time needed is ' k ' - T=k. This means that it does n't depend on 'n '. Take a
10-element array, take a single element array or take a 10,000 element array. It only has to make one
comparison because it is only searching for the first element in the array. Now, AlGo 1 's luck is bad.
Till now, he was fortunate ; But now he 's not so lucky anymore. Average Case complexity is equal
to. . . the sum of the run time for the total number of possibilities. The O ( Sum of all possible run
times divided by the number of possibility ) is O ( n ) The average case complexity is the sum.
Average Case is equal. to. . . The sum of all. possible run. times divided. by the total. number of
possible run time. So for an array size of 5, We saw six cases. 't ' ; I 'll calculate ' O ' later. n+1 If 'n ' is
the size of the array , Then there is 'n+1 '' number of possibilities. 'n' possibilities is when there is 1st
element, 2nd element, 3rd element, 4th element, 5th element and 6th element. If the element is here,
How many comparisons will it have to make ? It will have to do. . . 1. . . 2. . . 3 comparisons. I 've
taken ' k ' as common out of everything. I removed this because this is different. And this I have added
separately.
AP is Arithmetic Progression and GP is a geometric progression. AP is used in 'O ' a lot. APs are
made as well as GPs sometimes. When there are questions on 'O' APs and GPs are used in the answers
to questions on O. The formula of Average Case Complexity is All possible run times divided by the
total number of possibilities. The Average Case Time is not generally asked for a unique algorithm. It
can be asked for this type of algorithm , A simple algorithm that compares all of these. So what is the
Average Case. Complexity ? O ( n ). Algo 1 was making 'n ' comparisons. Now we 'll see how many
comparisons this will make. Algo 2 is a cunning person. It will match the first and last element and
match it first. It made one comparison For a size of 10 array , As well as for an array of size 100. It is
making the same comparison for all sizes of array.
The midpoint between 1 and 100 will be 50. Then you will discard this entire array that has elements
greater than 50. If there are an even number of elements here, there are 2-2-4,2-6 elements. So the
midpoint can be both 7 or 9. So I can take either of them as midpoint. You will keep halving an array
until it gets over; In the worst case, you will find the element. You can halve 8 once, and it will
become 4. 8 has become 3. How many times can you divide 16 ? You can divide 16 once, twice,
twice and four times. How will you divide 1 ? You ca n't halve 1 ? How many comparisons will you
make ? For 100 elements, how many comparisons are you making ? You'll make an estimated, 5-6-7
comparisons. So I told you a very good definition of 'Log '. Nobody told me this , And most probably
3|Page
The benefits of buying summaries with Stuvia:
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
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
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 shariq. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $10.49. You're not tied to anything after your purchase.