몇 가지 정렬 알고리즘을 이해하려고 노력하고 있지만 버블 정렬과 삽입 정렬 알고리즘의 차이점을 확인하는 데 어려움을 겪고 있습니다.
나는 둘 다 O (n 2 ) 라는 것을 알고 있지만 버블 정렬은 각 패스에 대해 배열의 최대 값을 맨 위로 버블 링하는 반면 삽입 정렬은 각 패스에서 가장 낮은 값을 맨 아래로 싱크합니다. 그들은 똑같은 일을하지만 다른 방향으로하고 있지 않습니까?
삽입 정렬의 경우 비교 / 잠재적 스왑 수는 0에서 시작하여 매번 증가하지만 (예 : 0, 1, 2, 3, 4, ..., n) 버블 정렬의 경우 이와 동일한 동작이 발생하지만 정렬 (즉, n, n-1, n-2, ... 0)은 버블 정렬이 정렬 될 때 마지막 요소와 더 이상 비교할 필요가 없기 때문입니다.
이 모든 것에 대해 일반적으로 삽입 정렬이 더 좋다는 것이 합의 된 것 같습니다. 아무도 이유를 말해 줄 수 있습니까?
편집 : 저는 주로 알고리즘의 효율성이나 점근 적 복잡성이 아니라 알고리즘 작동 방식의 차이점에 관심이 있습니다.