Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

얼렁뚱땅 우왕좌왕

[JAVA] 버블정렬과 선택정렬 본문

JAVA

[JAVA] 버블정렬과 선택정렬

뚱땅왕 2024. 7. 15. 15:51

■ 버블정렬 
- for문 : 원본자료가 n개일때 n-1차 운행한다. 
- 이중for문으로 각 회차에서 인접한 두 값을 비교
- 오름 차순인 경우 작은 값을 앞으로 이동
- 내림 차순인 경우 큰 값을 앞으로 이동 

오름차순 예시)
- 반대의 경우 if문 부등호 방향만 변경해준당

for(int i=0; i<scores.length-1; i++) {
	for(int j=0; j< scores.length-1; j++) {
        //j = 0 : 77, 75, 43, 83, 
        //j = 1 ; 77, 75, 43, 83,
        //j = 2 : 77, 75, 83, 43,

        if(scores[j] < scores[j+1]) { //부등호만 바꾸면 오름차순! 
            int temp = scores[j];
            scores[j] = scores[j+1];
            scores[j+1] = temp;
        }
	}
}



//향상된 버블 정렬

for(int i=0; i<scores.length-1; i++) {
    boolean end = true;
    for(int j=0; j< scores.length-1; j++) {
        if(scores[j] < scores[j+1]) { //부등호만 바꾸면 오름차순! 
            int temp = scores[j];
            scores[j] = scores[j+1];
            scores[j+1] = temp;
            end = false;
        }
    }
    if(end) break; //더 이상 정렬할 것이 없는 경우 > 작업종료
}



■ 선택정렬 
- 순서대로 값을 비교하고 최대값이나 최소값을 갖고 있는 인덱스와 값을 변경 

for(int i = 0; i < scores.length-1; i++){
    int min = i;
    for(int j = i; j < scores.length-1; j++){
        if(scores[j] < scores[min]){
        	min = j; // 최소값을 가진 인덱스를 저장
        }
    }
    // 저장한 인덱스 번호를 가져와서 정렬중인 인덱스 값과 변경한다
    int temp = scores[min];
    scores[min] = scores[i];
    scores[i] = temp;
}



■ 메소드를 활용한 정렬
- Arrays.sort(lotto);
   : 오름차순으로 정렬이 된다. 

'JAVA' 카테고리의 다른 글

[JAVA] static, 싱글톤, final  (0) 2024.07.15
[JAVA] String 함수  (0) 2024.07.15
[JAVA] 배열 복사하는 방법  (0) 2024.07.15
[JAVA] method와 stack, heap 영역  (0) 2024.07.15
[JAVA] 변수 타입  (0) 2024.07.15