알고리즘/JAVA
3. 삽입 정렬
vivi
2021. 9. 24. 23:39
import java.util.*;
class Main {
public ArrayList<Integer> solution(int N, int[] arr) {
ArrayList<Integer> answer = new ArrayList<>();
answer.add(Integer.MIN_VALUE);
answer.add(arr[0]);
answer.add(Integer.MAX_VALUE);
for (int i = 1; i < N; i++) {
for (int j = 1; j < answer.size(); j++) {
if (arr[i] >= answer.get(j - 1) && arr[i] <= answer.get(j)) {
answer.add(j, arr[i]);
break;
} else
continue;
}
}
answer.remove(0);
answer.remove(answer.size() - 1);
return answer;
}
public static void main(String[] args) {
Main T = new Main();
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();
for (int x : T.solution(N, arr))
System.out.print(x + " ");
kb.close();
}
}
이건 줄 알았는데 짜고보니 삽입정렬이 이게 아니었다
import java.util.*;
class Main {
public int[] solution(int N, int[] arr) {
for (int i = 1; i < N; i++) {
int tmp = arr[i], j;
for (j = i - 1; j >= 0; j--) {
if (arr[j] > tmp) {
arr[j + 1] = arr[j];
} else
break;
}
arr[j + 1] = tmp;
}
return arr;
}
public static void main(String[] args) {
Main T = new Main();
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();
for (int x : T.solution(N, arr))
System.out.print(x + " ");
kb.close();
}
}