본문 바로가기

전체 글

(19)
삽입 정렬 삽입 정렬은 주어진 원소들을 하나씩 뽑은 후, 정렬된 형태를 가지도록 뽑은 원소를 바른 위치에 삽입하여 나열하는 정렬 방식이다. arr [] = { 30, 50, 20, 10, 40 }의 배열로 삽입 정렬을 이용하여 정렬해보자. ① 먼저 두 번째 원소부터 시작을 한다. 두 번째 원소 50과 첫 번째 원소인 30을 비교한다. 더 큰 값이 뒤에 있다면 연산을 진행하지 않는다. 30보다 50이 크기 때문에 세 번째 원소로 넘어간다. ② 현재까지 나열된 원소는 30과 50이다. 세 번째 원소인 20과 두 번째 원소인 50을 비교할 경우 더 큰 값이 앞에 있기 때문에 배열을 뒤로 밀어줘야 하는데 먼저 해야 할 것은 삽입해야 할 원소를 temp 변수에 저장해둔다. ③ 이후 원소를 삽입하기 위해 빈 공간이 필요한데 ..
버블 정렬 버블 정렬은 인접한 두 원소를 차례대로 비교하면서 자리바꿈을 통해 정렬된 순서를 맞추는 것을 반복하면서 정렬하는 방식이다. 원소의 이동이 거품처럼 수면으로 올라오는듯한 모습으로 버블 정렬이라는 이름이 붙여졌다. arr [] = { 30, 50, 20, 10, 40 }의 배열로 버블 정렬을 이용하여 정렬해보자. ① 먼저 첫 번째 원소와 두 번째 원소를 비교한 후 큰 값을 뒤에 위치로 옮겨준다. 30과 50을 비교하였을 때 50이 더 크기 때문에 위치를 변경하지 않는다. 그 이후 두 번째 원소와 세 번째 원소를 비교한다. 50과 20을 비교하였을 때 두 번째 원소가 더 크기 때문에 세 번째 원소와 서로 위치를 변경한다. ② 위의 과정을 마지막 원소까지 진행하다 보면 아래와 같은 결괏값을 얻을 수 있다. ③ ..
선택 정렬 선택 정렬은 주어진 원소 중에서 가장 작은 키값을 갖는 원소를 선택하여 차례대로 나열하는 정렬 방식이다. arr [] = { 30, 50, 20, 10, 40 }의 배열로 선택 정렬을 이용하여 정렬해보자. ① 배열의 왼쪽에서 오른쪽으로 최솟값을 찾아나간다. 먼저 첫 번째 원소인 30을 최솟값으로 놓고 다음 원소 50과 비교한다. 30이 50보다 작으므로 최솟값은 여전히 30이다. 최소값인 30과 그 다음 원소인 20과 비교를 해보면 20이 30보다 작으므로 최소값이 20으로 바뀌게 된다. 최솟값인 20과 다음 원소 10을 비교하면 10은 20보다 작으므로 최소값이 10으로 바뀌게 된다. 오른쪽 끝까지 비교를 하면서 최소값을 찾은 후에는 첫 번째 원소와 최소값으로 찾은 네 번째 원소인 10과 교환을 한다...