## Saturday, August 29, 2020

### Selection Sort

Note: In Selection Sort elements are swap "n" times in wrost case.

Steps:-
• First it will compare for element for first position and check with all elements if find min then swap element.
• Check for second element and swap so on..
• So in this way its only swap element only "n" times.
• Selection sort is beter then Bubble sort. Because in bubble sort it swap elements n*(n-1) times.
• Worst-case space complexity: O(1) auxiliary.
• Best-case performance: О(n2) comparisons.
• Worst-case performance: О(n2) comparisons.
```package dataStructure;

public class SelectionSort {
public static void main(String[] args) {
int data[] = { 4, -5, 2, 6, 1 };
System.out.print("Input data for Sorting : ");
printArray(data);
SelectionSort(data);
}

static void SelectionSort(int[] array) {
int n, c, d;
n = array.length;
int minIndex;
for (c = 0; c < (n - 1); c++) {
minIndex = c;
for (d = c + 1; d < n; d++) {
if (array[d] < array[minIndex]) {
minIndex = d;
}
}
// swap elements
swap(minIndex, c, array);
printArray(array);
}

System.out.print("Output - Sorted data:");
printArray(array);
}

static void swap(int minIndex, int currIndex, int[] array) {
int swap = array[currIndex];
array[currIndex] = array[minIndex];
array[minIndex] = swap;
}

static void printArray(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.println();
}
}
```
Output:
```Input data for Sorting : 4 -5 2 6 1
-5 4 2 6 1
-5 1 2 6 4
-5 1 2 6 4
-5 1 2 4 6
Output - Sorted data:-5 1 2 4 6
```