강의

멘토링

커뮤니티

Inflearn Community Q&A

ehdgus68790886's profile image
ehdgus68790886

asked

Introduction to Java Algorithm Problem Solving: Coding Test Preparation

3. Insertion Sort

삽입정렬에 관해 질문있습니다.

Written on

·

356

0

강사님의 강의를 듣기 전



import java.util.Scanner;

public class Main{
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int[] arr = new int[n];
for(int i =0; i < n ; i++){
arr[i] = kb.nextInt();
}
int a;
for(int i = 1; i< n; i++){
a = i;
for(int j = i-1; j >= 0; j--){
if(arr[a] < arr[j]){
int tmp = arr[j];
arr[j] = arr[a];
arr[a] = tmp;
}
a--;

}
}
for(int i =0; i < n ; i++){
System.out.print(arr[i] + " ");
}
}
}

이렇게 코드를 짰었는데 제가 짠 코드도 삽입정렬이라 할 수 있는
것 인가요?
java코테 준비 같이 해요!

Answer 1

0

ehdgus68790886님의 프로필 이미지
ehdgus68790886
Questioner

위 문제에 이어서 추가적으로 복습을 하던 중 위에 코드와 다르게 다시 짜보았을 때 



import java.util.Scanner;

public class Main{
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int input = kb.nextInt();
int[] arr = new int[input];
for(int i =0; i < input ; i++){
arr[i] = kb.nextInt();
}
int tmp;
for(int i =1; i < input; i++){
tmp = arr[i];
for(int j = i-1; j >= 0; j--){
if(arr[j] > tmp){
arr[j+1] = arr[j];
}
else
break;
arr[j] = tmp;
}
}
for(int i =0; i < input; i++){
System.out.print(arr[i] + " ");
}
}
}

이렇게 짜서 arr[j+1]에 대입하는 것이 아닌 arr[j]에다 대입
하였는데 상관없나요??

두 코드 다 리뷰 부탁드립니다 ㅠㅠ
ehdgus68790886's profile image
ehdgus68790886

asked

Ask a question