공부기록, 2021-04-20
코틀린에서 숫자를 입력받고 그 숫자를 bubbleSort로 정렬하는 알고리즘을 풀어보았다
== 프로그램 시작 ==
숫자(띄워쓰기로 구분) : 3 0 1 8 7 2 5 4 6 9
오름차순 정렬 결과 : 0 1 2 3 4 5 6 7 8 9
내림차순 정렬 결과 : 9 8 7 6 5 4 3 2 1 0
== 프로그램 끝 ==
fun main(){
println("== 프로그램 시작 ==")
print("숫자(띄워쓰기로 구분) : ")
val numbers = readLine()!!.trim().split(" ").map { it.toInt() }.toMutableList()
bubbleSort(numbers)
print("오름차순 정렬 결과 : ")
printNumbers(numbers)
print("내림차순 정렬 결과 : ")
reversePrintNumbers(numbers)
println("== 프로그램 종료 ==")
}
fun reversePrintNumbers(numbers: MutableList<Int>) {
for (number in numbers.reversed()){
print("$number ")
}
println()
}
fun printNumbers(numbers: MutableList<Int>) {
for (number in numbers){
print("$number ")
}
println()
}
fun bubbleSort(numbers: MutableList<Int>) {
val lastIndex = numbers.size -1
var depth = lastIndex
loop1@while (depth >= 1 ){
for (i in 0 until depth){
if(i == depth-1 && numbers[i] < numbers[i+1]){
depth-=2
continue@loop1
}
if(numbers[i] > numbers[i+1]){
numbers[i] = numbers[i+1].also { numbers[i+1] = numbers[i] }
}
}
depth--
}
}