02 Sep 2014
Graphs are data structures to represent road networks, the web, social networks etc. Moreover, hundreds of computational problems are related to graphs.They have two main ingredient which are;

\(Vertices (V)\) as known as nodes.

\(Edges (E)\) : pair of vertices

can be undirected.

or directed.
16 Jul 2014
Quicksort is a sorting algorithm which applies divide and conquer paradigm. Quicksort has a worst case running time of \( O(n^{2}) \) , however, it has running time of \( O(n logn) \) on average which makes quicksort very efficient. Moreover, it works inplace but not stable. The performance of quicksort depends on selecting the pivot, and starting to partition around it. During the partition procedure subarrays divided into four regions; \( \leq x \), \( > x \), \( unrestricted \) ,and finally the \( pivot \).
06 Jul 2014
Selection sort is an inplace comparison sort algorithm which has \( O(n^2) \) running time complexity in both best and worst case. Even though its logic is similar to insertion sort, it’s a very inefficient sorting algorithm. List is both divided into two parts as sorted and unsorted where initially sorted part is empty. Every turn, algorithm finds the minimum (or maximum) key in unsorted sublist then swaps it with the leftmost element of unsorted part. Due to the reason which elements in any place could get swapped selection sort is not stable.
28 Jun 2014
Merge sort is another comparison based sort algorithm. It closely follows divideandconquer paradigm, and provides \( O(nlgn) \) run time complexity in worst and average cases, however, \( O(n) \) in space complexity. Merge sort can be used for sorting huge data sets that can not fit into memory. It is also a stable sort which preserves the order of equal elements.
16 Jun 2014
Binary search is a searching algorithm which works on a sorted (ascending or descending) array. In each turn, the given key is compared with the key at the middle of the array, if it is equal to it then its index is returned. Otherwise, if the given key is less than key at the middle then binary search continues its operation on left subarray \( ( A[0..Mid1] ) \), and similarly on right subarray \( ( A[mid+1..N1] ) \) if given key greater than it. If the given key cannot be found then an indication of not found is returned.