## What is Sorting Network?

A sorting network in Design and Analysis of Algorithms (DAA) is a group of comparators that are arranged in a way to sort a set of input elements. The sorting network is designed in such a way that the input elements pass through the comparators and are sorted in either increasing or decreasing order based on the comparator arrangement.

Sorting networks have the advantage that they can sort any set of input elements, regardless of their values. This makes sorting networks useful in situations where the values of the input elements are unknown or vary widely.

Sorting networks are often used in parallel computing systems, where multiple processors can work on different parts of the input simultaneously, making the sorting process faster than traditional sorting algorithms.

## Bubble Sorting Network

Bubble sorting network is a popular implementation of the bubble sort algorithm, which is one of the simplest sorting algorithms. The main idea of bubble sort is to compare adjacent elements in an array and swap them if they are in the wrong order. The algorithm then repeats this process until the entire array is sorted.

In a bubble sorting network, the algorithm is implemented using comparators, which are circuits that compare two input values and output the larger or smaller value. The comparators are arranged in a specific way to sort the input elements.

## Example of sorting the following array of integers using bubble sorting network: [5, 2, 9, 1, 5, 6, 3]

The bubble sorting network for this array can be represented using a diagram, where each comparator is represented by a line connecting two input values. The diagram for our example array is shown below:

5 2 9 1 5 6 3 \ \ \ \ \ \ / \ \ \ \ \ / \ \ \ \ / \ \ \ / \ \ \ / \ \ / \ \ / \ /

The comparators are arranged in a way that allows the input elements to be compared in pairs and swapped if they are in the wrong order. In the first pass of the algorithm, the first two elements, 5 and 2, are compared and swapped, resulting in [2, 5, 9, 1, 5, 6, 3]. The same process is repeated for the next adjacent elements, 5 and 9, which are already in the correct order, and so on. The diagram below shows the bubble sorting network after the first pass:

2 5 1 5 6 3 9 \ \ \ \ \ \ / \ \ \ \ \ / \ \ \ \ / \ \ \ / \ \ \ / \ \ / \ \ / \ /

After the first pass, the largest element, 9, is at the end of the array. The algorithm then repeats the same process for the remaining elements, which are the first n-1 elements of the array in the n-th pass. The sorting process continues until all elements are sorted.

The bubble sorting network has a time complexity of O(n^2), which makes it inefficient for large datasets. However, it is easy to understand and implement, and it can be useful for small datasets or as a teaching tool to introduce the concept of sorting algorithms.

In conclusion, bubble sorting network is a specific implementation of the bubble sort algorithm using comparators. It is a simple and easy-to-understand sorting algorithm that can be useful in some specialized applications, such as hardware implementations of sorting algorithms.

## DAA-2022

## Q-1.

(b) Discuss the concept of asymptotic notation and its properties.

## Q-2.

## Q-3

## Q-4

What is Huffman code ? discuss the greedy algorithm for constructing the Huffman code.

## Q-5

## Q-6

## Q-7

What is bitonic sequence ? discuss bitonic sort algorithm and it’s time complexity.

## Q-8

What is sorting Network ? Discuss the structure of bubble sorting network.