*(i) ***Radix sort: –** Radix sort is a distributive sorting technique. This sorting technique basically used with string type data. Sorting is a comprised by considering groups with the same first bits and ordering that group to the last bit. The ordering of a group on a given bit is a comprised by scanning down from the top of group from a one bit and up from bottom from a zero bit, these two are exchange and sort continue this algorithm require the program to keep up with a larger number of group and coded in a bad form, could require and additional table however, with optimal coding, it is possible to keep track of the groups by sampling monitoring the top of the table and a list of the break point.

This sorting technique used when a large list of names are two be sorted alphabetically using this sorting technique one can classify the list of name into 26 group. The list is first sorted on the first latter and spread over into 26 different pockets. When this process finished, sorting start for radix sort continues up to the last letter. Finally all latter sorted in desired order

*(ii) ***Hash table: –** As we saw with binary search, certain data structures such as a binary search tree can help improve the efficiency of searches. From linear search to binary search, we improved our search efficiency from O(n) to O(logn) . We now present a new data structure, called a hash table, that will increase our efficiency to O(1) , or constant time.

A hash table is made up of two parts: an array (the actual table where the data to be searched is stored) and a mapping function, known as a hash function. The hash function is a mapping from the input space to the integer space that defines the indices of the array. In other words, the hash function provides a way for assigning numbers to the input data such that the data can then be stored at the array index corresponding to the assigned number.

*(iii) ***Directed and undirected graph: –**

**Directed graph: –** In a directed graph, the two directions are counted as being distinct directed edges. In an directed graph, we write edges using parentheses to denote ordered pairs. For example, edge (2,3) is directed from 2 to 3 , which is different than the directed edge (3,2) from 3 to 2. Directed graphs are drawn with arrowheads on the links, as shown below:

**Undirected graph: –** The edges of a graph are assumed to be unordered pairs of nodes. Sometimes we say undirected graph to emphasize this point. In an undirected graph, we write edges using curly braces to denote unordered pairs. For example, an undirected edge {2,3} from vertex 2 to vertex 3 is the same thing as an undirected edge {3,2} from vertex 3 to vertex 2.

*(iv) ***Abstract data type: –** You’re well acquainted with data types by now, like integers, arrays, and so on. To access the data, you’ve used operations defined in the programming language for the data type, for instance by accessing array elements by using the square bracket notation, or by accessing scalar values merely by using the name of the corresponding variables.

This approach doesn’t always work on large programs in the real world, because these programs evolve as a result of new requirements or constraints. A modification to a program commonly requires a change in one or more of its data structures. For instance, a new field might be added to a personnel record to keep track of more information about each individual; an array might be replaced by a linked structure to improve the program’s efficiency; or a bit field might be changed in the process of moving the program to another computer. You don’t want such a change to require rewriting every procedure that uses the changed structure. Thus, it is useful to separate the use of a data structure from the details of its implementation. This is the principle underlying the use of abstract data types.

*(v) ***DeQue: –** The double ended queue is also called Deque. The stack has only one end and can be use alternately to insert and delete element, on the other hand, the double ended queue has two end front and rear. The front end is used to insert element and rear end to use delete element. In the double ended queue, insertion and deletion can be performing from both ends and therefore it is called double ended queue or Deque. The Deque is a general representation of both stack and queue and can be used as stack or queue. A Deque can insert or delete at both end but only one either insertion or deletion at a time.

** (vi) Heap sort: –** Heap sort is an ordered balanced binary tree in which the value of node at the root of in sub tree is less than or equal to the value of either of its children. This inherent ordering implies that value item may be placed in the heap. This sorting arrange element beginning of heap here heap means the last node at this technique insert in reverse in reverse order for example suppose we want to sort array in ascending order, elements are arranged in descending order from heap to beginning and elements are sorted in ascending order.