100
18 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 정렬 2: 2: 2: 2: 2: 2: 2: 2: 2: 2: 2: 2: 2: 2: 2: 2: 2: 2: 2: 2: 2: 2: 2: 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 버블 정렬 (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort) (Bubble Sort)
버블 정렬
1.
www.gisa79.com
문 제
명의 학생 성적을 입력받아 배열에 저장한 후 저장된 자료를 오름차순으로 정렬하는 순서도 5
를 작성하시오
알고리즘에 사용되는 변수는 다음과 같다.
▸
정렬할 숫자가 저장될 배열 - A(5):
- i: 인덱스 변수 인덱스 변수 - J:
자료 교환에 필요한 임시 변수 - TEMP:
분 석
서로 이웃한 값들을 차례대로 비교하여 기준값(J)이 비교값(J+1)보다 크면 값을 교환
▸
뒤에서부터 정렬됨
▸
102
※ 오름차순 정렬 조건 : A(J) > A(J+1) 내림차순 정렬 조건 : A(J) < A(J+1)
디 버 깅
명의 점수 를 입력받아 디버깅해서 정확성을 검증합니다
3 (80, 90, 70) .
이 때 배열은 A(3)로 반복문은, i = 1, 2 와 J = 1, 3-i 로 수정해서 디버깅합니다.
디버깅 결과와 여러분이 직접 구한 결과(70, 80, 90, 100)가 같으면 됩니다. 80 90 70
A(1) A(2) A(3)
i J A(J) > A(J+1) TEMP A(i) A(J+1) 출 력
www.gisa79.com
연습문제 버블 정렬
2. [ ]
‘06년 1회 기사 기출문제문 제
제시된 그림 은 배열< > A(10)에 기억된10개의 데이터에 대하여 버블 정렬(bubble sort)을 이용하여 오름차순으로 정렬하는 순서도이다. <그림 의 괄호 안 내용에 가장>
적합한 항목을 답항 보기 에서 선택하여 답안지의< >
해당 번호(1)~(5)에 마크하시오.
처리조건
< >
사용되는 변수 등은 다음과 같다
- .
N :정렬하고자 하는 수치 데이터의 갯수 정렬의 회전수를 계산하기 위한 변수 i :
배열의 첨자 등을 위한 변수 j :
FLAG : 임의의 회전 작업시 데이터의 교환이 발생하지 않을 경우 비교가 반복되는 것을 방지하기 위한 변수
두 변수간의 값을 서로 바꾸기 위한 변수 TM :
버블 정렬 개념 설명 -
개의 데이터에 대하여 인접한 개 데이터를 비교하여
n 2
결과에 따라 데이터를 교환한다 즉 오름차순의 경우. , 첫 번째 데이터와 두 번째 데이터를 비교하여 작은 데이터를 앞에 놓는다 이러한 작업은 첫째. ( : 둘째),
둘째
( : 세째), (세째: 네째) ...의 순으로 계속해서 번째와 번째 데이터를 비교하는 것으로 (n-1) n
회전이 끝나게 된다 이때 가장 큰 데이터가 번째
1 . n
위치하게 된다 다음에 다시 첫 번째 데이터로부터. , 번째 데이터까지 위와 같은 작업을 반복하면 (n-1)
두 번째 큰 값이(n-1)번째에 위치하게 되며, 회전 작업이 끝난다
2 .
이러한 과정을 반복하여(n-1)회전 즉 첫 번째와, 두 번째 데이터를 비교하는 것으로 작업이 끝난다.
단 회전 작업 시 교환되는 것이 없으면서 비교가, 반복되는 것을 방지하기 위해 플래그(FLAG)를 두어 후속 데이터들이 순서대로 있는지 여부를 검사하면서 정렬한다.
본 문제에서는 를 설정하여 임의의 회전 작업 시
- FLAG
교환이 발생하지 않는다면 정렬이 완료된 상태로 간주하고 작업을 종료시키기로 한다, .
104
1 1 2 -2 3 2 4 N 5 N-1
6 i 7 i+1 8 J 9 J+1 10 N+1
11 J+N 12 J+i 13 10-J 14 A(J) 15 A(i)
16 A(N) 17 N-J 18 FLAG-1 19 FLAG+1 20 A(J+1) 21 A(i+1) 22 N-i 23 A(N+1) 24 TM+1 25 N+2
26 N-2 27 FLAG 28 FLAG+2 29 i+2 30 J+2
31 J+10 32 TM-1 33 10-i 34 9 35 10
36 A(N-1) 37 A(J+N) 38 A(J-1) 39 J+9 40 0(zero)
디 버 깅