Notice
Recent Comments
Recent Posts
«   2024/11   »
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
Today
Total
관리 메뉴

기록 > 기억

[Algorithm] 정렬 알고리즘 본문

IT국비지원

[Algorithm] 정렬 알고리즘

BY SON 2021. 9. 17. 10:25

정렬 알고리즘 (선택, 버블)

 

● 선택정렬 (오름차순) → 두 수를 비교하여 가장 작은 수를 왼쪽부터 정렬

 21   20  10 55 100 33 75 4
 20  21  10  55 100 33 75 4
 10  21 20  55  100 33 75 4
 10  21 20 55  100  33 75 4
 10  21 20 55 100  33  75 4
 10  21 20 55 100 33  75  4
 10  21 20 55 100 33 75  4 
 4   21   20  55 100 33 75 10
4  20  21  55  100 33 75 10
4  20  21 55  100  33 75 10
4  20  21 55 100  33  75 10
4  20  21 55 100 33  75  10
4  20  21 55 100 33 75  10 
4 10  21   55  100 33 75 20
4 10  21  55  100  33 75 20
4 10  21  55 100  33  75 20
4 10  21  55 100 33  75  20
4 10  21  55 100 33 75  20 
4 10 20  55   100  33 75 21
4 10 20  55  100  33  75 21
4 10 20  33  100 55  75  21
4 10 20  33  100 55 75  21 
4 10 20 21  100   55  75 33
4 10 20 21  55  100  75  33
4 10 20 21  55  100 75  33 
4 10 20 21 33  100   75  55
4 10 20 21 33  75  100  55 
4 10 20 21 33 55  100   75 
4 10 20 21 33 55 75 100
/* 선택정렬 오름차순 코드 */
let number = [21, 20, 10, 55, 100, 33, 75, 4];

for(let i=0; i<number.length-1; i++) {	//기준 항목
	for(let j=i+1; j<number.length; j++) {	//비교 항목		
		if(number[i] > number[j]) {	//a가 b보다 크면 스와핑
			let temp = number[i];
			number[i] = number[j];
			number[j] = temp;
		}		
	}
}
document.write(number);	//4,10,20,21,33,55,75,100

 

● 버블정렬 (오름차순) → 인접한 두 수를 비교하여 가장 큰 수를 오른쪽부터 정렬

 21   20  10 55 100 33 75 4
20  21   10  55 100 33 75 4
20 10  21   55  100 33 75 4
20 10 21  55   100  33 75 4
20 10 21 55  100   33  75 4
20 10 21 55 33 100  75  4
20 10 21 55 33 75 100  4 
 20   10  21 55 33 75 4 100
10  20   21  55 33 75 4 100
10 20  21   55  33 75 4 100
10 20 21  55   33  75 4 100
10 20 21 33  55   75  4 100
10 20 21 33 55  75   4  100
10 20 21 33 55 4  75   100 
 10   20  21 33 55 4 75 100
10  20   21  33 55 4 75 100
10 20  21   33  55 4 75 100
10 20 21  33   55  4 75 100
10 20 21 33  55   4  75 100
10 20 21 33 4  55   75  100
10 20 21 33 4 55  75   100 
 10   20  21 33 4 55 75 100
10  20   21  33 4 55 75 100
10 20  21   33  4 55 75 100
10 20 21  33   4  55 75 100
10 20 21 4  33   55  75 100
10 20 21 4 33  55   75  100
10 20 21 4 33 55  75   100 
 10   20  21 4 33 55 75 100
10  20   21  4 33 55 75 100
10 20  21   4  33 55 75 100
10 20 4  21   33  55 75 100
10 20 4 21  33   55  75 100
10 20 4 21 33  55   75  100
10 20 4 21 33 55  75   100 
 10   20  4 21 33 55 75 100
10  20   4  21 33 55 75 100
10 4  20   21  33 55 75 100
10 4 20  21   33  55 75 100
10 4 20 21  33   55  75 100
10 4 20 21 33  55   75  100
10 4 20 21 33 55  75   100 
 10   4  20 21 33 55 75 100
4  10   20  21 33 55 75 100
4 10  20   21  33 55 75 100
4 10 20  21   33  55 75 100
4 10 20 21  33   55  75 100
4 10 20 21 33  55   75  100
4 10 20 21 33 55  75   100 
4 10 20 21 33 55 75 100
/* 버블정렬 오름차순 코드 */
let number = [21, 20, 10, 55, 100, 33, 75, 4]; 
		 
for(let i=0; i<number.length-1; i++) {	
	for(let j=0; j<number.length-1; j++) {			
		if(number[j] > number[j+1]) {	//인접한 두 항목비교, a가 b보다 크면 스와핑
			let temp = number[j];
			number[j] = number[j+1];
			number[j+1] = temp;
		}
	}
}
document.write(number);	//4,10,20,21,33,55,75,100

 

Comments