우선 배열은 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<String>){
var array = arrayOf<Int>(7,5,9,0,3,1,6,2,4,8)
for (i in 1 until array.size){
for (j in i downTo 1){
if( array[j-1]>array[j]){
var temp:Int = array[j]
array[j]=array[j-1]
array[j-1]=temp
}
}
}
for ((index, item) in array.withIndex()) {
print(item)
if(index < array.size-1){
print(", ")
}
}
}
- Java
// 자바
public class Main_InsertSort {
public static void main(String[] args) {
int[] array={7,5,9,0,3,1,6,2,4,8};
for (int i=1;i< array.length;i++){
for (int j=i;j>0;j--){
if(array[j-1]>array[j]){
int temp = array[j];
array[j] = array[j-1];
array[j-1]=temp;
}
}
}
for(int k=0;k< array.length;k++){
System.out.print(array[k]);
if(k < array.length-1){
System.out.print(", ");
}
}
}
}
'알고리즘 > 정렬' 카테고리의 다른 글
[선택정렬] Python, Java, Kotlin (0) | 2020.12.27 |
---|