기억보다 기록을

[cs50] 버블정렬, 선택정렬 본문

CS/cs50

[cs50] 버블정렬, 선택정렬

juyeong 2022. 3. 17. 19:35
반응형

 

 

버블 정렬 

정렬되지 않은 리스트를 탐색하는 것 보다 정렬한 뒤 탐색하는 것이 더 효율적입니다.

정렬 알고리즘 중 하나는 버블 정렬입니다. 버블 정렬은 두 개의 인접한 자료 값을 비교하면서 위치를 교환하는 방식으로 정렬하는 방법을 말합니다. 버블 정렬은 단 두 개의 요소만 정렬해주는 좁은 범위의 정렬에 집중합니다. 이 접근법은 간단하지만 단 하나의 요소를 정렬하기 위해 너무 많이 교환하는 낭비가 발생할 수도 있습니다.

 

버블 정렬은 리스트 안에 들어있는 두 개의 인접한 수를 비교하고 만약 순서에 맞지 않는다면 교환해주는 방식으로 작동합니다. 

n개의 원소에 대해서 버블 정렬을 한번 수행할 때마다 n번째의 원소가 제 자리를 찾게 됩니다. 그렇기 때문에 다음 정렬에서는 n-1개의 원소를 정렬해 주면 됩니다. 

 

선택 정렬 

보통 배열이 정렬되어 있으면 정렬되지 않은 배열보다 더 쉽게 탐색할 수 있습니다. 정렬을 위한 알고리즘 중 선택정렬을 배열 안의 자료 중 가장 작은 수(혹은 가장 큰 수)를 찾아 첫 번째 위치(혹은 가장 마지막 위치)의 수와 교환해주는 방식의 정렬입니다. 선택 정렬 교환 횟수를 최소화하는 반면 각 자료를 비교하는 횟수는 증가합니다.

 

 

 

문제풀기

https://joewithtech.tistory.com/10 이것만 가지고  문제풀이는 어려울 것 같다. 여기에 다른 개념들이 더해지므로 위의 해커랭크하고 리트코드 사용법을 익히는 것으로 마치자. 

반응형