공부/자료구조

[자료구조] 정렬들 다시 정리.

JangGiraffe 2016. 3. 30. 10:18

선택정렬은 n^2


삽입정렬은 올바른 자리를 찾아 삽입하는 정렬. 대부분의 레코드가 이미 정렬되있는 경우 매우 효율적일 수 있다.


버블정렬 작업이 비효율적이어서 단순함에도 불구하고 거의 쓰이지 않는다.


합병정렬 입력데이터가 무엇이든 간에 정렬되는 시간은 동일하다. 단점은 임시배열이 필요하다는 것과 레코드의 크기가 큰 경우 이동 횟수가 많으므로 매우 큰 시간낭비를 초래한다는 것이다. 그러나 레코드를 연결리스트로 구성해 합병 정렬을 할 경우 링크 인덱스만 변경되므로 데이터의 이동은 무시할 수 있을 정도로 작아진다. 따라서 크기가 큰 레코드를 정렬할 경우 연결리스트를 사용한다면 퀵정렬을 포함한 다른 어떤 정렬방법보다 효율적일 수 있다.

퀵정렬 빠르다. 추가 메모리 공간도 필요하지 않다. 이미 정렬된 리스트에 대해서는 최악의 경우가 발생함. (수행시간이 더 많이 걸린다..) 이를 방지하기 위해 리스트 내의 데이터 중에서 크기순으로 중간값을 피벗으로 선택하는 방법을 사용한데요.

반응형