반응형
class Ex1 { public static void main(String[] args) { int[] number = new int[10]; for(int i =0; i<number.length; i++) { System.out.print(number[i] = (int)(Math.random() *10)); } System.out.println(); for(int i =0; i < number.length; i++) { boolean changed = false; for(int j =0; j<number.length-1-i; j++) { if(number[j]>number[j+1]) { //옆의 값이 크면 서로 바꾼다. int temp = number[j]; number[j] = number[j+1]; number[j+1] = temp; changed = true; //자리바꿈발생 } } for(int k =0; k<number.length; k++) System.out.print(number[k]); //매 반복마다 정렬된 결과를 출력 System.out.println(); if(!changed) break; } }
크기가 10인 배열에 0과 9 사이의 임의의 값(Math.random)으로 채운 뒤, 버블정렬 알고리즘을 통해 크기순으로 정렬하는 예제
배열의 크기가 n일 때, 배열의 첫 번째부터 n-i까지의 요소에 대해, 근접한 값과 크기를 비교하여 자리바꿈을 반복
효율적인 작업을 위해 changed라는 boolean 변수를 두어 자리바꿈이 없으면 빠져나가도록 했다.
책 - 자바의 정석 / 카페 - 남궁성의 코드초보스터디
반응형
'책 자바의 정석 스터디[저자 - 남궁성]' 카테고리의 다른 글
객체지향언어 (0) | 2019.02.21 |
---|---|
[배열] 최대값 최소값 구하기 (0) | 2019.02.20 |
[배열] 배열을 이용하여 합계와 평균 구하기 (0) | 2019.02.20 |
[배열] 배열의 복사 Arraycopy 이용하기 (0) | 2019.02.20 |