Algorithm/정렬

버블정렬 ( 파이썬, 코틀린 )

지후0816 2021. 5. 1. 11:15

- 오름차순 정렬 ( 뒤로 갈수록 커지는 - ASC )

 

1) 파이썬

arr = [1,3,5,4,2]
for i in range(len(arr) - 1, 0, -1):
    for j in range(i):
        if arr[j] > arr[j + 1]:       # 부호만 바꿔주면 내림차순
            arr[j], arr[j + 1] = arr[j + 1], arr[j]
print(arr)

 

 

2) 코틀린

val arr: Array<Int> = arrayOf(1,3,5,4,2)

        val maxDepth = arr.size - 1
        for(i in maxDepth downTo 1){
            for(j in 0 until i){
                if(arr[j] > arr[j+1]){
                    arr[j] = arr[j + 1].also{arr[j + 1] = arr[j]}
                }
            }
        }
    arr.forEach { print(it) }

 

< 배운 것 >

- 코틀린에서 .also{}를 통해 temp 변수에 저장하지 않고 바로 두 값을 스왑할 수 있다.

- 코틀린 반복문에서 "n .. x" , "n .. downTo x", "n until x"의 인덱스 차이를 숙지했다.