알고리즘 자료구조/백준
[백준]1377 버블 소트
yes_truly
2023. 9. 17. 16:16
728x90
🖊️문제
버블 소트 알고리즘을 다음과 같이 C++로 작성했다.
bool changed = false;
for (int i=1; i<=N+1; i++) {
changed = false;
for (int j=1; j<=N-i; j++) {
if (A[j] > A[j+1]) {
changed = true;
swap(A[j], A[j+1]);
}
}
if (changed == false) {
cout << i << '\n';
break;
}
}
위 소스에서 N은 배열의 크기이고, A는 정렬해야 하는 배열이다. 배열은 A[1]부터 사용한다.
위와 같은 소스를 실행시켰을 때, 어떤 값이 출력되는지 구해보자.
🖊️풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
mData[] arr = new mData[n];
for (int i = 0; i < n; i++) {
arr[i] = new mData(Integer.parseInt(br.readLine()),i);
}
Arrays.sort(arr);
int max = 0;
for (int i = 0; i < n; i++) {
if(max < arr[i].index - i){
max = arr[i].index-i+1;
}
}
System.out.println(max);
}
}
class mData implements Comparable<mData>{
int value;
int index;
public mData(int value, int index) {
super();
this.value = value;
this.index = index;
}
@Override
public int compareTo(mData o) {
return this.value - o.value;
}
}
728x90