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"의 인덱스 차이를 숙지했다.