써먹는 웹개발
[Java Study]5. 배열(+버블정렬) 본문
728x90
반응형
※ 해당 글은 제가 14년도에 학원 다닐때 직접 작성했던 자료입니다.
이중 for문 다음으로 이해하기 어려운 단원이 배열입니다.
배열이란? 동일한 성격의 데이터를 관리하기 쉽도록 하나로 묶는 일
1차원 배열은 동일한 변수들의 모임입니다.
(※ 좀더 응용하면 클래스에 여러가지 데이터를 담아 클래스 배열로 만들 수 있습니다.)
예제 1) 1차원 배열에서 모음찾기
- 1차원 배열에 연속적으로 형태(char)에 맞는 값을 집어넣고 조건에 맞으면 불러옵니다.
2차원 배열은 1차원 배열들의 묶음입니다.
예제 2) 2차원배열에서 모음찾기
- 1차원 배열 5개를 묶어 2차원 배열을 만들었습니다.
- 행과 열에 따라 값을 출력합니다.
배열은 이해를 못해도 소스를 따라하기엔 크게 어렵지 않았을 것입니다.
그런데 과제를 보고 소스를 작성할때 머뭇거리기 시작합니다.
과제 1) 버블정렬의 개수가 6개라면 (6-1)+(6-1)+(6-1)+(6-1)+(6-1) = 총 25번을
비교하지 않고, (6-1)+(6-2)+(6-3)+(6-4)+(6-5) = 15번만 비교하게 수정하시오.
― 배열도 이해를 못했는데 버블정렬?! (더군다나 수업도 놓쳤는데…. )
============================================================================================================
과제 1에서 먼저 알아야 할 것은 버블정렬의 개념입니다.
버블정렬이란? 일반적으로 사용되는 분류 알고리즘(sorting algorithm)이지만, 알고리즘이 수중(水中)의 「거품」과 움직임이 유사하기 때문에 이러한 이름이 붙여졌다. 이 말은 인접한 레코드의 키를 비교해서 그 결과 순서화되어 있지 않으면 교환하는 방식이다.(출처 : 네이버 사전)
버블정렬 예제)
다음은 유튜브에서 찾은 버블정렬 시뮬레이션입니다. (http://youtu.be/NiyEqLZmngY)
영상을 잘 보시면 한번 돌릴때마다 끝으로 간 값은 두번다시 비교하지 않습니다.
과제1의 목적은 (버블)정렬을 할때 쓸데없이 반복되는 명령을 수정하여 프로그램 성능을
향상 시키는데 있습니다.
과제 1) 버블정렬 코드 수정
- 비교하여 마지막으로 간 수(비교 값들 중에서 가장 큰 수)는 더이상 비교하지 않습니다.
과제2 성적처리는 다음 글에 이어집니다.
728x90
반응형
'Study > Java & Python' 카테고리의 다른 글
[Python Study] 1. 첫번째 데이터 타입, Number (0) | 2019.01.03 |
---|---|
[Java Study]6. 성적처리 프로그램 (print부터 클래스 변수까지) (0) | 2018.02.11 |
[Java Study]4. 클래스(+계산기) (0) | 2018.02.11 |
[Java Study]3-2. 별찍기 어디까지 가봤니? (이중 for문 연습,+8번 과제) (0) | 2018.02.11 |
[Java Study]3. 반복문 (0) | 2018.02.11 |
Comments