인프런 커뮤니티 질문&답변

녕나님의 프로필 이미지
녕나

작성한 질문수

데이터 자동화(with VBA)

정렬_3(버블 정렬)

버블정렬 질문입니다.

작성

·

291

1

안녕하세요, 강의 잘 보고 있습니다.

new collection 배열안에 있는 요소들을 버블정렬을 이용해서 정렬을 하셨는데

아시다시피 버블정렬은 시간복잡도가 O(n^2)로 데이터 수가 많을수록 속도가 상당히 느려지는데

이를 보완하기 위해 병합정렬이나 퀵소트가 있는걸로 알고있습니다.

액셀 내에서는 이러한 merge sort나 quick sort를 내장함수로 지원하지 않는지 궁금합니다.

무조건 버블정렬을 써야하는지, (현업에서는 그냥 써도 무방하니까 쓰는 것인가요?? ㅎㅎ) 궁금하네요!

답변 1

0

배영자님의 프로필 이미지
배영자
지식공유자

1. 아닙니다. 무조건 버블정렬을 써야 하는 것은 아닙니다.
정렬 알고리즘별로 평균, 최악 시간복잡도 그리고 리스트의 크기를 고려해서 선택하셔야겠지요.
아래의 링크를 참고해 보세요.
https://stackoverflow.com/questions/152319/vba-array-sort-function

2. 엑셀이 메뉴로 '오름차순'과 '내림차순' 기능을 제공하고 있습니다(함수로는 없습니다.)
그러나 이 기능이 어떤 알고리즘을 기반으로 설계되었는지는 모르겠습니다.
연구해보시고 알아내시면 제게도 알려주시면 감사하겠습니다.

녕나님의 프로필 이미지
녕나

작성한 질문수

질문하기