التخطي إلى المحتوى الرئيسي

How do I start learning or strengthen my knowledge of data structures and algorithms?

Day 
 to 0: Stick to a programming language like C or C++. Make sure that you are comfortable with pointers/objects.
Day 1: Understand the concept of Algorithmic complexity. Skip the theory for now, but for every piece of code you write, you should be able to derive both time and space complexity.
Day 2 - 10: Let’s start with some simple data structures,
  1. Arrays
  2. Linked Lists
  3. Strings
  4. Stacks
  5. Queues
Understand their basic operations (insert, delete, search, traversal) and their complexity - Big-O Algorithm Complexity Cheat Sheet, and code them all.
Day 11 - 25: Let’s now learn some simple algorithms,
  1. Sorting - Insertion sortMerge sortQuick sortHeap sortBucket sortCounting sortRadix sortExternal sorting
  2. Search - Linear searchBinary Search (along with its variants).
  3. Prime Numbers - Sieve of EratosthenesPrimality test
  4. Strings - String searchingLCSPalindrome detection
  5. Miscellaneous - Euclidean algorithmMatrix multiplicationFibonacci NumbersPascal's TriangleMax Subarray problem
Day 26 - 50: Once you are comfortable with everything above, start doing problems from,
  1. Cracking the Coding Interview
  2. Elements of Programming Interviews
  3. Programming Interviews Exposed: Secrets to Landing Your Next Job
  4. GeeksforGeeks
  5. HackerRank
  6. InterviewBit
Stick to chapters of arrays, linked lists, strings, stacks, queues and complexity.
Day 51 - 60: Let’s learn some non-linear data structures,
  1. Tree
    1. Binary Tree, Binary Search Tree - Tree traversalsLowest common ancestorDepth, Height & DiameterFinding k-th smallest element
    2. Heaps
  2. Hash table - 4 sum problemChecking if sudoku solution is valid
  3. Graph - Breadth-first searchDepth-first searchTopological sortingMinimum spanning treeShortest path problem,
Day 61- 90: Refer to the previous resources and start doing problems from trees, hash tables, heaps and graphs.
Day 101 - 
: You are now better than most of the CS undergrads. Keep revising the above topics and start competitive programming




تعليقات

المشاركات الشائعة من هذه المدونة

تصميم الالعاب الالكترونية

100 مليار دولار هو حجم وناتج تجارة وصناعة سوق الألعاب الالكترونية دوليا، ليصبح هذا السوق في أهمية أسواق أي سلع استراتيجية أخرى .. مع انتشار الهواتف الذكية بصورة كبيرة و انتشار العاب و تطبيقات الهواتف الذكية اصبح هناك العديد من   الاشخاص يهتمون بتصميم العاب الاندرويد و الايفون  لذلك تقوم شركة لودكس بتصميم العاب اندرويد وايفون والالعاب الاونلاين والعاب الديسك توب بكل احترافية وبتصميمات رائعة وجودة عالية .    Game Developing           

the best way to learn how to draw

Drawing is a skill which develops as you practice. You're not alone when you say that you're terrible at drawing; all the great artists have started drawing with  stick figures  at some point in their life. Figures like this one - ​The reason why they went ahead from these so called " stick figures"  to something much more, is that they had an insatiable desire within them to draw even better, every time they put their pencil on paper. This shear fact separated them from the rest, and that's the only reason why they were successful in honing their skill to reach where they reached later on in their respective lives. First and foremost, the one great thing that's in your favor is- the fact that you are dedicated to improve your drawing. I say this because it seems that way, as you are asking this question. And this is really important because any art form can not be learned just for the sake of it; there has to be passion, interest, curiosity, and ded...

What is a KPI - A Key Performance Indicator Meaning

A  Key Performance Indicator  is a measurable value that demonstrates how effectively a company is achieving key business objectives. Organizations use KPIs at multiple levels to evaluate their success at reaching targets. High-level KPIs may focus on the overall performance of the enterprise, while low-level KPIs may focus on processes in departments                           such as sales, marketing or a call center.  lodex solutions