[삽입정렬] Python, Kotlin, Java
우선 배열은 0부터 시작하지만 우리가 바로 오른 쪽 값 부터 비교 하므로 1부터 배열의 길이까지 for 문을 돌린다. j는 i의 시작값 좌측으로 -1 씩 인덱스를 감소하면서 정렬 시킨다. 기본적으로 i와 j의 이중 for문으로 시간복잡도는 O(N^2)가 된다. - Python # 파이썬 array=[7,5,9,0,3,1,6,2,4,8] for i in range(1,len(array)) : for j in range(i,0,-1) : if array[j] < array[j-1] : array[j],array[j-1] = array[j-1],array[j] else : break print(array) - Kotlin //코틀린 fun main(array: Array){ var array = arrayOf..
[선택정렬] Python, Java, Kotlin
상단의 이미지와 같이 앞에 값 하나와 그 이외의 값의 크기를 계속 비교하면서 최소값을 찾아나간다. 시간 복잡도는 N번만큼 가장 작은 수를 가장 앞으로 보내야한다. 처음 0번째 부터 하나씩 오른쪽으로 밀려가는 for문이 돌아가므로 N+(N-1)+(N-2)+...+2 이고 마지막은 굳이 정렬을 돌리지 않아도 된다. 등차수열의 합 공식 n(a+l)/2 = (N-1)(N+2)/2 = (N^2+2N-N-2)/2 = (N^2+N-2)/2 가 된다 빅오 표기법에 의해 가장 큰 N^2만 남게되고 O(N^2)가 된다. - Python # 파이썬 array=[7, 5, 9, 0, 3, 1, 6, 2, 4, 8] #selection sort for i in range(len(array)): tempIdx=i for j in..