Languages/Java

버블정렬(+Arrays 클래스)

개발자 나르 2021. 7. 12. 22:15
반응형

버블정렬(bubble sort)

무작위로 되어있는 배열으로 이루어진 숫자들을 오름차순으로 또는 내림차순으로 정렬하는 알고리즘이다.

버블정렬을 하는 2가지의 방법이 있는데 하나는 반복문과 조건문을 통해서 결과를 받는 값이고 하나는 Arrays 클래스를 이용해서

사용하는 방법이 있다. 문자열도 순서에 따라서 정렬이 가능하다.

 

원리를 글로 적자면 배열의 길이가 5개인 무작위수로 되어있는 배열이라고 가정한다면 첫번째 위치한 값과 두번째 위치한 값을 

비교하고 더 큰값이 뒤로 가거나 앞으로 가게 하는 방식을 더 이상 위치를 바꿀 필요가 없을 때까지 돌린다.

 

반복문과 조건문을 통한 버블정렬의 예시

더보기

ex)

int a[] = {1,3,2,4,5}; //무작위수의 배열

int temp; //위치를 바꿀 때 임시로 저장하기 위해 빈공간의 변수를 생성해야한다.

for(int i=0;i < a.length-1;i++) {  //a.length-1의 이유는 첫번째부터 4번째의수까지 적어야 마지막에 5번째,4번째 비교를 할 수 있음

     for(int j=i+1;j < a.length;j++) { // j의 값을 i+1로 둔 이유는 i=0일떄 j=1 i=1일때 j=2 그 다음 수와 비교를 위해

          if(a[i] > a[j]) { //조건문 생성

               temp = a[i]; //temp라는 빈공간의 변수에 a[i]를 저장하고 

               a[i] = a[j]; //비어있는 a[i]에 a[j]를 저장하고

               a[j] = temp; //마지막으로 비어있는 a[j]에 temp를 저장한다. 내림차순은 이걸 반대로 적으면 된다.

          }

     }

}

for(int i=0;i < a.length;i++) { // 출력하는 반복문

System.out.print(a[i] + " ");

}

Arrays.sort();의 함수로 사용하는 버블정렬의 예시

더보기

ex)

int a[] = {1,3,2,4,5}; //무작위수의 배열

Arrays.sort(a); //위의 기본식에서 반복문중첩과 조건문을 이렇게 한 줄로 적을 수 있다. Arrays.sort(a, Collections.reverseOrder());

for(int i=0;i < a.length;i++) {

System.out.print(a[i] + " ");

}

내림차순은 Arrays.sort(a, Collections.reverseOrder()); Arrys 클래스 자리에 이거로 적으면 된다.

기본식으로 어떤 원리인지 알고나서 Arrays클래스 사용하는 법을 알면 좋을거 같다.

반응형