Selection Sort is one of the most important sorting algorithm frequently looked upon and is even asked in the Interviews. In this article we will look atÂ Selection SortÂ Kotlin Implementation with example.

Before diving into the code, let us see what is a Selection sort and Whether its efficient to use or not.

#### What is a Selection Sort

Selection sort is one of the simplest form of sorting. Its goal is simple: to find the smallest element and bring it to front. Then find the second smallest and move it to second position from front and so on.This will continue until all the elements are in position.

Since the algorithm repeatedly selects the smallest element, it is called as selection sort.

#### Related Links

#### Advantages

- Easy,
- No additional space required

#### Selection Sort Kotlin Algorithm Implementation:

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.

Learn more about bidirectional Unicode characters

fun main(args: Array<String>) { | |

val list = ArrayList(readLine()!!.split(" ").map { it.toInt() }) | |

selection(list) | |

for(i in list) println(i) | |

} | |

fun selection(a: ArrayList<Int>) { | |

var min:Int | |

for (i in 0 until a.size) { | |

min = i | |

for (j in (i + 1) until a.size) { | |

if (a[j] < a[min]) { | |

min = j | |

} | |

} | |

swap(a, min, i) | |

} | |

} | |

fun swap(a : ArrayList<Int>, b: Int, c:Int) { | |

val temp = a[b] | |

a[b] = a[c] | |

a[c] = temp | |

} |

#### Is it Efficient?

As you can see, in the above example, it consists of two for loops – one in line 9 and other in line 11 in the above example. So we know that the its Average and worst case Complexity is O(n^{2}). Hence its inefficient compared to other algorithms.

In the next article we will be looking into few other important sorting techniques like bubble sort, merge sort etc.