- 오름차순 정렬 ( 뒤로 갈수록 커지는 - 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"의 인덱스 차이를 숙지했다.
'Algorithm > 정렬' 카테고리의 다른 글
[파이썬] "k번째 수" - 2차원 배열 슬라이싱 / sort(),sorted(),reverse(), reversed() (0) | 2021.05.21 |
---|