 Hello friends. I am Sanjay Gupta. I welcome you on Sanjay Gupta Tech School. So in this video, I'm going to discuss about introduction of data structure and algorithm. So first I will be telling you brief definition kind of thing related to algorithm. Then we will discuss data structure in detail. So if you see this first slide, which is containing two points. So here first point is saying algorithm is a step-by-step procedure which defines a set of instructions to be executed in a certain order to get the desired output. So basically an algorithm is a process through which we receive some input, then that input will be processed so that we can have the desired output in terms of results. Then if we talk about second point, so it says algorithms are generally created independent of underlying languages. That is an algorithm can be implemented in more than one programming language. So if you have a process, then you need to write an algorithm for that process. And then after implementing an algorithm, you can implement that with the help of any programming language. So if you are good with C, then you can implement your algorithm with C language. If you are good with C++, then you can implement your algorithm with C++ as well. Or if you are good with Java, Python or any other programming language, then you can convert that as well. So this is brief introduction of algorithm. Now let's discuss about the data structure. So data structure is basically a place where we can store the data. And now you can combine them together. So data structure is a place where we can store the data. And algorithm is a process that will be applied on that stored data so that we can identify the output or we can get the desired result. So if you see this diagram, so here data structures are divided into two parts, simple data structure and compound data structure. So simple data structure you might have used and see like you have created variables of in load care or you also declared pointers. So these are simple data structures where limited data can be stored. Now, if you want to store data in quality or use data you want to store, then you can use compound data structures. So these are divided into two parts further. First is linear data structure and second is non-linear data structure. So in linear data structure we have array, link list, tag, use and in non-linear data structure we have tree, graph and piles. So in my upcoming videos you will get to know how we can use these data structures. So if you see array, link list, tag, use, tree, graph and piles. So all these are various topics or chapters. Those are available under data structure and algorithm subject. So I will be providing you videos related to these topics so that you can understand them as well. Before going into deep, so let's discuss about the characteristics of algorithm. So this is very important to know like what characteristic should your algorithm have. So first is unambiguous. So if we read the description, so algorithm should be clear and unambiguous. Each of its steps or phases and their inputs and output should be clear and must lead to only one meaning. So they should be clear. There should be some meaning whatever you are writing as a step for the algorithm. So this is first characteristic of algorithm. Second is input. So an algorithm should have zero or more well-defined inputs. Third is output and algorithm should have one or more well-defined outputs or should match the desired output. So if your algorithm is not providing desired result as output, then that algorithm will not be implemented by any programmer because it doesn't make any sense like if your algorithm is not providing meaningful output. So input and output both are key component of an algorithm. So if you have right input and right process then only you will be having right output as the desired result. Then fourth point is finiteness. So algorithms must terminate after a finite number of steps. So it should be finite. It should not be infinite because infinite algorithms are of no use because they will not be terminating any point of time. So it should be finite so that we can receive a particular output as the result. Then next is feasibility. So it should be feasible with the available resources. So algorithm should be that kind of algorithm that can be implemented with the available resources. So you need to focus on the resources while you are implementing the algorithm as well. Then independent. So algorithm should have step-by-step directions which should be independent of any programming code. So remember one thing while you are writing any algorithm. So don't remember any programming language in your mind. Forget all those programming languages. Just focus on the process. After implementing the correct algorithm you will be thinking about which language I need to pick to implement this algorithm. But while you are writing the algorithm don't think of any programming language because if you put any programming language related steps in the algorithm then that algorithm should not be generated. So remember these things these are very important steps or characteristics of algorithm. Now next is important operations. So these are some important operations that we can do on data structures with the help of algorithms. So here you can read from the data structure point of view. Following are some important operations of algorithm. So algorithm as I earlier told you is a process and data structure is a place where we store the data. So we write process so that we can apply them on data structure. So first operation we can do that is search. So algorithm to search an item in a data structure. Second is sort algorithm to sort items in a certain order so it can be ascending or descending as per the requirement. Then we have insert, update and delete so these are basic operations. So if you are implementing any process so that will be doing any insertion operation. It may be doing any updation operation or maybe doing any deletion operation. So these are key operations those you can perform on data structures with the help of algorithm. So if I talk about arrays because you might have gone through with arrays in C language as well. So if we focus on the array so what we do, we read input inside array from user then we perform certain operation and then we provide output as the result for the user. So here you can see we can apply searching on array, we can apply sorting on array, we can apply insertion on array, we can apply updation as well as deletion. So these are key operations that you can apply on various data structures or data structure and algorithms. So this is all about introduction of data structure and algorithm. So I hope you understood what data structures can be available in data structures and algorithm and what are algorithms. So after watching this video now you are familiar with the DSA. So keep watching more videos related to this subject so that you can get to know how we can write algorithms. How we can implement these operations which are listed in front of you with the help of data structures and algorithm. So I will be posting videos related to those. So keep watching them and try to understand how data structure and algorithm works. So thank you for watching this video.