📘 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 Heap Sort algorithm in Kotlin programming language.
Heap sort is a comparison-based sorting technique based on the Binary Heap data structure. It is similar to the selection sort where we first find the minimum element and place the minimum element at the beginning. We repeat the same process for the remaining elements.
Heap Sort Algorithm in Kotlin
import java.util.*
fun <E: Comparable<E>> Array<E>.sort() {
val middle = size / 2 - 1
for (i in middle downTo 0) {
heapify(this, size, i)
}
for (i in size - 1 downTo 0) {
this[0] = this[i].also { this[i] = this[0] }
heapify(this, i, 0)
}
}
private fun <E: Comparable<E>> heapify(arr: Array<E>, heapSize: Int, root: Int) {
var largest = root
val leftNode = 2 * root + 1
val rightNode = 2 * root + 2
if (leftNode < heapSize && arr[leftNode] > arr[largest]) largest = leftNode
if (rightNode < heapSize && arr[rightNode] > arr[largest]) largest = rightNode
if (largest != root) {
arr[root] = arr[largest].also { arr[largest] = arr[root] }
heapify(arr, heapSize, largest)
}
}
fun main(args: Array<String>) {
val nums = arrayOf(2, 12, 89, 23, 76, 43, 12)
nums.sort()
println(Arrays.toString(nums))
val languages = arrayOf("Kotlin", "Java", "C#", "R", "Python", "Scala", "Groovy", "C", "C++")
languages.sort()
println(Arrays.toString(languages))
}
Output:
[2, 12, 12, 23, 43, 76, 89]
[C, C#, C++, Groovy, Java, Kotlin, Python, R, Scala]
Related Data Structures and Algorithms in Kotlin
- Bubble Sort Algorithm in Kotlin
- Heap Sort Algorithm in Kotlin
- Insertion Sort Algorithm in Kotlin
- Merge Sort Algorithm in Kotlin
- Quick Sort Algorithm in Kotlin
- Selection Sort Algorithm in Kotlin
- Stack Data Structure Implementation in Kotlin
- Queue Data Structure Implementation in Kotlin
- Deque Implementation in Kotlin
- Singly Linked List Implementation in Kotlin
- Doubly Linked List Implementation in Kotlin
- Circular Linked List Implementation in Kotlin
- Bubble Sort Algorithm in Kotlin
- Heap Sort Algorithm in Kotlin
- Insertion Sort Algorithm in Kotlin
- Merge Sort Algorithm in Kotlin
- Quick Sort Algorithm in Kotlin
- Selection Sort Algorithm in Kotlin
- Stack Data Structure Implementation in Kotlin
- Queue Data Structure Implementation in Kotlin
- Deque Implementation in Kotlin
- Singly Linked List Implementation in Kotlin
- Doubly Linked List Implementation in Kotlin
- Circular Linked List Implementation in Kotlin
Comments
Post a Comment
Leave Comment