큰 값과 작은 값의 위치를 바꾸어 준다.
input -> array data
output -> sorted data
i <- data.length to 0
j <- 0 to i-1
if data[j]>data[j+1]
swtich data[j] data[j+1]
return data
이 때 2가지 실수를 했었다.
1. pesudo code작성시에 그냥 switch data라고만 적어놔서 data[j]와 data[i]를 바꾸는 실수를 하였다. 뒤에 까지 명확히 적어놔야 헷갈리지 않는다.
2. array bound of exection 오류가 떴었다. j <- 0 to i 라고 했었기 때문. j+1 로 하였기 때문에 i-1로 해야 길이가 맞다.
package SortSeries;
public class BubbleSort {
public static void main(String args[]){
int data[] = {4,2,1,5,7,9,3,2,3,1,2,1,3,45,89};
int result[] = bubble(data);
for(int i : result){
System.out.print(i + " ");
}
}
static int[] bubble(int data[]){
int temp;
for(int i=data.length;i>0;i--){
for(int j=0;j<i-1;j++){
if(data[j]>data[j+1]){
temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
}
}
}
return data;
}
}