Posted on: 30/11/2017
Updated on: 22/04/2018
Task done/total: --/--
This is one of my recent personal projects, in which I aim to develop my technical skills and explore new technologies.
In this course, I was focusing on analysing various types of data structures and the performance of each type with Time Complexity in Average - Best - Worst cases in looking-up data, merging - comparing - sorting data sets, inserting - removing - copying data, and a lot of other algorithms to refine and produce data for some specific purposes basing on the requirements of the real problem. Some of the main data structures that I was taught and self-researching during the time of this course include:
Array
, Record
, Struct
, Enum
, Union
.List
, ArrayList
, Map
, Multimap
, Set
, Bag
, Stack
, Queue
(normal, priority), Deque
, LinkedList
(singly, doubly, circular).Matrix
, Associative Array, Parallel Array, Sorted Array, Vector, Lookup Tables.Some of the algorithms that was covered by this course:
Assignment 1 was about applying some basic algorithms in insertion, deletion and lookup of data in custom data structures comprising Sorted LinkedList, Balanced Tree, HashMap, LinkedList (singly or doubly), and Binary Search Tree. The input data will be growing in density from low to very high. Then I needed to evaluate the Time Complexity for each data structure, and compare the performance of each type to tell which one of them would be best suited in what situations of data inputs.
Assignment 2 required students to implement a maze generator program using Recursive Backtracker, Growing Tree and Prism algorithms. The types of maze were Rectangular Maze, Hexagonal Maze and Tunnel Maze. All mazes must be perfect. Then students must complete the algorithms to solve the generated mazes using Wall Follower and Bidirectional Recursive Backtracker algorithms.