Summer
Summer
Name : Avinash
Registration No : 12016521
Link to Profile section : GFG Profile Section
About Summer Training :
We followed a structured methodology for our 8 Weeks Summer training Program by Geeks for Geeks
DSA Self-Paced course .
Which starts from Basic data structures like Arrays, Strings and recursion to the implementation of
hard algorithms like Dynamic programming, Segment trees and Backtracking.
And at the end prepared a Well planned mini Project Binary search algorithm(Used for searching
element in an array) Visualiser in which we will see how the elements are being traversed in Binary
Search until the given element is found.
We will also visualize the time complexity of Binary Search which is O(logn).
We have used Javascript for binary search visualiser and also GUI(Graphic User Interface).
Organisation Information:
With the idea of imparting programming knowledge, Mr. Sandeep Jain, an IIT Roorkee alumnus started a
dream, GeeksforGeeks. Whether programming excites you or you feel stifled, wondering how to prepare
for interview questions or how to ace data structures and algorithms, GeeksforGeeks is a one-stop
solution.
With every tick of time, they are adding arrows in our quiver. From articles on various computer science
subjects to programming problems for practice, from basic to premium courses, from technologies to
entrance examinations, they have been building ample content with superior quality.
In a short span, they have built a community of 1 Million+ Geeks around the world, 20,000+ Contributors
and 500+ Campus Ambassadors in various colleges across the nation. Their success stories include a lot of
students who benefitted in their placements and landed jobs at tech giants. Their vision is to build a
gigantic network of geeks and there are only a fraction of it yet.
Why this course :
This course is a complete package that helped me learn Data Structures and Algorithms from basic to
an advanced level. The course curriculum has been divided into 8 weeks where one can practice
questions & attempt the assessment tests according to his own pace.
The course offers me a wealth of programming challenges that will help me to prepare for interviews
with top-notch companies like Microsoft, Amazon, Adobe etc.
Data structures and algorithms (DSA) goes through solutions to standard problems in detail and gives
you an insight into how efficient it is to use each one of them. It also teaches you the science of
evaluating the efficiency of an algorithm. This enables you to choose the best of various choices.
Why DSA is important :
Data structures and algorithms are an essential part of computer science because they help us to store,
process, and analyze large amounts of data.
Without these tools, it would be practically impossible to collect, process, and analyze all the data that is
generated by computers around the world. In data structures, we learn how to organize data using various
techniques, such as arrays and linked lists. In algorithms, we study the various ways that computers can be
programmed to solve problems.
Technology Learnt :
Learn Data Structures and Algorithms from basic to an advanced level
Learn Topic-wise implementation of different Data Structures & Algorithms as follows
1. Analysis of common loops
2. Analysis of Recursion
3. Space Complexity
4. Arrays and Strings
5. Searching and Sorting
6. Hashing
7. Linked List
8. Stacks, Queues and Deque
9. Tree
10. Binary Search Tree
11. Heap
12. Graphs
13. Tree
14. Segment Tree
Project description :
GUI(Graphical User Interface) helps in better understanding than programs. In this mini project, we will
visualize Binary Search using JavaScript. We will see how the elements are being traversed in Binary
Search until the given element is found. We will also visualize the time complexity of Binary Search.
Binary search is a fast search algorithm with run-time complexity of Ο(log n). This search algorithm
works on the principle of divide and conquer. For this algorithm to work properly, the data collection
should be in the sorted form.
Binary search looks for a particular item by comparing the middle most item of the collection. If a match
occurs, then the index of item is returned. If the middle item is greater than the item, then the item is
searched in the sub-array to the left of the middle item. Otherwise, the item is searched for in the sub-
array to the right of the middle item. This process continues on the sub-array as well until the size of the
subarray reduces to zero.
Approach used for the project :
1. First, we will generate a random array using Math.random() function and then sort it using sort()
function.
2. Different color is used to indicate which element is being traversed at current time.
3. Since the algorithm performs the operation very fast, the setTimeout() function has been used to
slow down the process.
4. New array can be generated by pressing the “Ctrl+R” key.
5. The searching is performed using BinarySearch() function.