버블 정렬 =
0번 index부터 마지막 index까지 오른쪽 index랑 비교 후 오른쪽 값보다 크면 위치 교환
0번 index부터 마지막 index까지 비교하는걸 무한히 반복하는데
만약 한 사이클 동안 위치 변경이 일어나지 않았으면 정렬 종료
선택 정렬 =
0번 index부터 마지막 index까지 돌면서 찾은 가장 작은 수를 0번 index와 자리를 바꿈
그 다음 1번 index부터 마지막 index까지 돌면서 찾은 가장 작은 수를 1번 index와 자리를 바꿈
그 다음 2번 index부터 마지막 index까지 돌면서 찾은 가장 작은 수를 2번 index와 자리를 바꿈
그 다음 3번 index부터 마지막 index까지 돌면서 찾은 가장 작은 수를 3번 index와 자리를 바꿈
....
....
....
반복....
삽입 정렬 =
1번 index부터 시작해서 왼쪽 값(0번 index)과 비교후 현재 index가 더 작으면 자리를 바꿈
다음 2번 index로 넘어와서 바로 왼쪽 값(1번 index)과 비교후 현재 index가 더 작으면 자리를 바꿈
만약 자리를 바꾸지 않았으면 다음 사이클로, 지리를 바꿨다면 바꾼 위치에서 왼쪽값(0번 index)과 한번 더 비교
다음 3번 index로 넘어와서 바로 왼쪽 값(2번 index)과 비교후 현재 index가 더 작으면 자리를 바꿈
만약 자리를 바꾸지 않았으면 다음 사이클로, 자리를 바꿨다면 바꾼 위치에서 왼쪽값(1번 index)과 한번 더 비교
만약 자리를 바꾸지 않았으면 다음 사이클로, 지리를 바꿨다면 바꾼 위치에서 왼쪽값(0번 index)과 한번 더 비교
다음 4번 index로 넘어와서 바로 왼쪽 값(3번 index)과 비교후 현재 index가 더 작으면 자리를 바꿈
만약 자리를 바꾸지 않았으면 다음 사이클로, 자리를 바꿨다면 바꾼 위치에서 왼쪽값(2번 index)과 한번 더 비교
만약 자리를 바꾸지 않았으면 다음 사이클로, 자리를 바꿨다면 바꾼 위치에서 왼쪽값(1번 index)과 한번 더 비교
만약 자리를 바꾸지 않았으면 다음 사이클로, 자리를 바꿨다면 바꾼 위치에서 왼쪽값(0번 index)과 한번 더 비교
다음 5번 index로 넘어와서 바로 왼쪽 값(4번 index)과 비교후 현재 index가 더 작으면 자리를 바꿈
만약 자리를 바꾸지 않았으면 다음 사이클로, 자리를 바꿨다면 바꾼 위치에서 왼쪽값(3번 index)과 한번 더 비교
만약 자리를 바꾸지 않았으면 다음 사이클로, 자리를 바꿨다면 바꾼 위치에서 왼쪽값(2번 index)과 한번 더 비교
만약 자리를 바꾸지 않았으면 다음 사이클로, 자리를 바꿨다면 바꾼 위치에서 왼쪽값(1번 index)과 한번 더 비교
만약 자리를 바꾸지 않았으면 다음 사이클로, 자리를 바꿨다면 바꾼 위치에서 왼쪽값(0번 index)과 한번 더 비교
….
….
….
….
….
반복....
버블 ,선택, 삽입 모두 평균 시간복잡도는 O(n^2)
하지만 삽입 정렬은 최고 시간복잡의 경우O(n)이 나옴
결국 다 비슷비슷 한 놈들이지만 빨을 정해보자면 삽입 > 선택 > 버블버블버블팝 버블버블 팝팝
'프로그래밍 > 자료구조와 알고리즘' 카테고리의 다른 글
다익스트라(Dijkstra) - O(E * logE) (0) | 2022.12.21 |
---|---|
다익스트라(Dijkstra) - O(n^2) (0) | 2022.12.19 |
크루스칼 알고리즘과 유니온 파인드 (0) | 2022.11.28 |
퀵정렬 (0) | 2022.11.27 |
stack (0) | 2022.11.13 |