Selection Sort Algorithm in Kotlin

📘 Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.

🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.

▶️ Subscribe to My YouTube Channel (176K+ subscribers): Java Guides on YouTube

▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube

In this tutorial, we will write a Program to implement the Selection Sort algorithm in Kotlin programming language.

The selection sort algorithm sorts an array by repeatedly finding the minimum element (considering ascending order) from the unsorted part and putting it at the beginning.

Selection Sort Algorithm in Kotlin

Let's write the Kotlin program to Sort an Array of elements as well as a list of elements using the Quick Sort Algorithm:

import java.util.*

fun <E: Comparable<E>> Array<E>.sort() {
    val len = size
    // Find the minimum value of the array
    for (i in 0 until (len - 1)) {
        // Getting the index where minimum value is present
        var minIndex = i
        for (j in (i + 1) until len) {
            if (this[j].compareTo(this[minIndex]) < 0) minIndex = j
        }

        // We got the minimum element, now swap that to first element
        val temp = this[minIndex]
        this[minIndex] = this[i]
        this[i] = temp
    }
}

fun <E: Comparable<E>> List<E>.sort(): List<E> {
    val len = size
    val resultList = toMutableList()
    // Find the minimum value of the array
    for (i in 0 until (len - 1)) {
        // Getting the index where minimum value is present
        var minIndex = i
        for (j in (i + 1) until len) {
            if (resultList[j].compareTo(resultList[minIndex]) < 0) minIndex = j
        }

        // We got the minimum element, now swap that to first element
        val temp = resultList[minIndex]
        resultList[minIndex] = resultList[i]
        resultList[i] = temp
    }
    return resultList
}

fun main(args: Array<String>) {
    println("Sort array of elements")
    val nums = arrayOf(2, 12, 89, 23, 76, 43, 12)
    println("Before sorting array of elements")
    println(Arrays.toString(nums))
    nums.sort()
    println("After sorting array of elements")
    println(Arrays.toString(nums))

    println()
    println("Sort List of elements")
    val nums1 = listOf(2, 12, 89, 23, 76, 43, 12)
    println("Before sorting list of elements")
    println(nums1)
    val result = nums1.sort()
    println("After sorting list of elements")
    println(result)
}

Output:

Sort array of elements
Before sorting array of elements
[2, 12, 89, 23, 76, 43, 12]
After sorting array of elements
[2, 12, 12, 23, 43, 76, 89]

Sort List of elements
Before sorting list of elements
[2, 12, 89, 23, 76, 43, 12]
After sorting list of elements
[2, 12, 12, 23, 43, 76, 89]

Related Data Structures and Algorithms in Kotlin

Comments

Spring Boot 3 Paid Course Published for Free
on my Java Guides YouTube Channel

Subscribe to my YouTube Channel (165K+ subscribers):
Java Guides Channel

Top 10 My Udemy Courses with Huge Discount:
Udemy Courses - Ramesh Fadatare