# 1. Introduction

Sorting is an elemental procedure in computer science and finds applications in various domains like data analytics, e-commerce, and database systems. In Kotlin, array manipulation is streamlined and user-friendly. In this guide, we'll leverage Kotlin's prowess to sort an array in ascending order.

# 2. Program Overview

Our Kotlin program will:

1. Initialize an array of numbers.

2. Implement the sorting mechanism to arrange numbers in ascending order.

3. Showcase the sorted array to the user.

# 3. Code Program

``````fun main() {
// Establish an array of numbers
val numbers = arrayOf(58, 13, 99, 45, 27, 3, 79)

// Implement the sorting technique
for (i in numbers.indices) {
for (j in 0 until numbers.size - i - 1) {
if (numbers[j] > numbers[j + 1]) {
// Swap the numbers if they're out of order
val temp = numbers[j]
numbers[j] = numbers[j + 1]
numbers[j + 1] = temp
}
}
}

// Print the sorted array
println("Array sorted in ascending order: \${numbers.joinToString()}")
}
``````

### Output:

```Array sorted in ascending order: 3, 13, 27, 45, 58, 79, 99
```

# 4. Step By Step Explanation

Initialization of the Array:

``    val numbers = arrayOf(58, 13, 99, 45, 27, 3, 79)``

This creates an array named numbers with a sequence of integer values.

Bubble Sort Implementation:
Bubble Sort is a simple sorting algorithm that repeatedly steps through the list, compares adjacent elements, and swaps them if they are in the wrong order. The pass through the list is repeated until the list is sorted.
``````    // Implement the sorting technique
for (i in numbers.indices) {
for (j in 0 until numbers.size - i - 1) {
if (numbers[j] > numbers[j + 1]) {
// Swap the numbers if they're out of order
val temp = numbers[j]
numbers[j] = numbers[j + 1]
numbers[j + 1] = temp
}
}
}``````
The outer for loop runs through each index in the array. As the sorting progresses, the largest elements get "bubbled up" to the end of the array. Hence, after each iteration of the outer loop, we know the end elements are in their correct position.

The inner for loop compares each pair of adjacent elements and swaps them if they're out of order (i.e., the left number is greater than the right number).

With each iteration of the inner loop, the largest number in the current subset gets moved (or bubbled) to the correct position in the array.

Printing the Sorted Array:

``    println("Array sorted in ascending order: \${numbers.joinToString()}")``