알고리즘17 정렬알고리즘_버블정렬 [2/8] [ 버블 정렬이란? ] 기준값과 다음값을 비교해서 작은 값을 앞으로 가져옴 이 과정을 계속 반복해서 마지막까지 가면 정렬 완료 코드는 간단하지만 O(n^2)의 시간 복잡도를 가지는만큼 매우 비효율적인 정렬 방식 수행횟수 : 9 + 8 + 7 + ... + 1 = 9(9+1)/2 = n(n+1)/2 선택정렬보다 값을 교체(Swap)하는 수행 횟수가 많으므로 더 비효율적이고 느림 arr[0] > arr[1] 이면 두 값을 바꿔줌 arr[1] > arr[2] 이면 두 값을 바꿔줌 ...반복... arr[8] > arr[9] 이면 두 값을 바꿔줌 (한 사이클 완료) arr[0] > arr[1] 이면 두 값을 바꿔줌 ...반복... arr[7] > arr[8] 이면 두 값을 바꿔줌 (한 사이클 완료) ...반복... ▸C언어/알고리즘 및 자료구조 2019. 12. 9. 정렬알고리즘_선택정렬 [1/8] [ 선택정렬이란? ] 전체 데이터를 모두 검색하는 과정을 반복해서 특정 기준으로 정렬하는 방법 쉽게 사용할 수 있으나, O(n^2)의 시간 복잡도를 가지는만큼 매우 비효율적인 정렬 방식 수행횟수 : 9 + 8 + 7 + ... + 1 = 9(9+1)/2 = n(n+1)/2 [ 오름차순 vs 내림차순 ] 왜 항상 헷갈리는 걸까요.. 내림차순 : 큰 것 → 작은 것 (높은 고도(500)에서 내려간다 (1)) 오름차순 : 작은 것 → 큰 것 (낮은 고도(1)에서 올라간다(500)) arr[0] ~ arr[9] 중 가장 작은 값을 찾아 "arr[0]"과 바꿔줌 arr[1] ~ arr[9] 중 가장 작은 값을 찾아 "arr[1]"과 바꿔줌 arr[2] ~ arr[9] 중 가장 작은 값을 찾아 "arr[2]"와 .. ▸C언어/알고리즘 및 자료구조 2019. 12. 9. 이전 1 2 다음 💲 추천 글 반응형