$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

초록
AI-Helper 아이콘AI-Helper

퀵정렬은 피벗값을 최좌측, 최우측, 중간 값 또는 랜덤하게 결정하는 방법을 적용하고 있다. 본 논문은 범위 중간값을 $P_0$피벗값으로 결정하고 계속적으로 양분하는 퀵정렬 방법을 제안하였다. 제안된 방법은 길이가 $n$인 리스트 $A$$i$=1, $j$=$n$에서 최소값 $L$과 최대값 $H$를 탐색하여 초기 피벗 키 값으로 $P_0=(H+L)/2$로 설정하고 $i$=$j$ 또는 $i$>$j$가 될 때까지 $a[i]{\geq}P_0$, $a[j]<P_0$를 교환하는 방식을 적용하였다. 피벗값에 따라 값의 교환이 완료되면 리스트 $A_0$는2개의 부분리스트 $a[1]{\leq}A_1{\leq}a[j]$$a[i]{\leq}A_2{\leq}a[n]$으로 분할되며 이 경우 피벗 키는 $P_1=P_0/2$, $P_2=P_0+P_1$으로 설정된다. 이러한 과정을 분할된 리스트의 길이가2일 때까지 수행되며, 리스트 길이가 2이고, $a$[1]>$a$[2]이면 $a[1]{\leftrightarrow}a[2]$로 교환한다. 제안된 방법은 퀵정렬에 비해 빠르며, 최악의 경우 수행 복잡도 $O(n^2)$$O(n{\log}n)$으로 향상시켰다.

Abstract AI-Helper 아이콘AI-Helper

Generally, Quicksort selects the pivot from leftmost, rightmost, middle, or random location in the array. This paper suggests Quicksort using middle range pivot $P_0$ and continually divides into 2. This method searches the minimum value $L$ and maximum value $H$ in ...

주제어

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

문제 정의

  • 퀵정렬은 피벗값을 최좌측, 최우측, 중앙값 또는 랜덤하게 선택한다[4]. 본 논문에서는 주어진 데이터 범위 (최대값-최소값)의 중간값을 피벗으로 활용하는 방법을 제안한다.
  • 본 논문은 컴퓨터과학 분야에서 가장 오래 전부터, 가장 많은 관심을 가진 연구분야인 정렬방법에 대해 퀵정렬보다 간단하면서도 빠른 방법을 제안하였다.

가설 설정

  • 만약, 주어진 데이터가 오름차순이나 내림차순 데이터가 존재하지 않고, 대부분 랜덤하게 저장된 데이터라 가정할 경우, Verify sorting()을 적용하지 않고 Range Pivot Quicksort()만을 적용한다고 가정하여 보자. 모든 값의 빈도수 (frequency)가 유사하다면 제안된 알고리즘은 균형있는 분할이 수행되어 최적의 경우와 최악의 경우 모두 수행복잡도가 O(nlogn)임을 알 수 있다.
  • 본 실험에는 최좌측 피벗을 선택한다고 가정하였다. 퀵정렬은 주어진 데이터가 오름차순 또는 내림차순으로 정렬되어 있는지 사전에 검증하지 않고 알고리즘을 적용한다.
본문요약 정보가 도움이 되었나요?

질의응답

핵심어 질문 논문에서 추출한 답변
이진 탐색법의 장점은 무엇인가? 데이터베이스나 인터넷에서 원하는 데이터를 빠른 속도로 탐색 (search)하기 위해서는 저장된 데이터가 정렬 (sort)되어 있어야만 한다. 길이가 n인 리스트 (list)에서 임의의 값을 탐색하는 가장 빠른 방법은 이진 탐색법 (binary search)으로 O(logn)의 수행 복잡도를 갖고 있으나 이 방법을 적용하기 위해서는 반드시 데이터가 정렬되어 있어야만 한다. 정렬 방법에는 다양한 방법들이 존재하지만 퀵정렬 (Quicksort)이 최악의 경우 O(n2), 최적의 경우 O(nlogn)의 수행 복잡도로 가장 빠른 방법으로 알려져 있다[1-3].
평균적인 시간 복잡도가 O(nlogn)인 정렬 알고리즘에는 무엇이 있는가? 데이터 정렬에 있어서 수행 복잡도 O(nlogn)보다 빠른 방법은 일반적으로 존재하지 않는 것으로 알려져 있다. 평균적인 시간 복잡도가 O(nlogn)인 정렬 알고리즘으로는 퀵정렬 이외에 병합정렬 (Merge sort), 힙정렬 (Heap sort), 팀정렬 (Timsort), 이진트리정렬 (Binary tree sort)과 평활정렬(Smoothsort)도 있다.
퀵정렬을 굳이 수행하지 않아도 되는 경우는 무엇인가? 정렬하고자 하는 데이터는 랜덤하게 저장된 데이터가 대부분이며, 이미 오름차순 또는 내림차순으로 정렬된 데이터는 거의 존재하지 않는다고 할 수 있다. 그러나 이러한 희박한 존재 가능성에 대해서는 굳이 퀵정렬을 수행하지 않아도 되며, 일반적인 랜덤하게 배열된 데이터에 대해서만 퀵정렬을 수행하면 수행시간이 보다 빠를 수 있다.
질의응답 정보가 도움이 되었나요?

참고문헌 (5)

  1. T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, "Introduction to Algorithms, Chapter 7. Quicksort", 2nd Ed., pp. 145-164, MIT Press, 2005. 

  2. D. B. Ring, "A Comparison of Sorting Algorithms", http://www.devx.com/vb2themax/Article/19900, 2003. 

  3. S. Nilson, "The Fastest Sorting Algorithm?", http://drdobs.com/architecture-and-design/184404062, Dr. Dobb's Journal, Vol. 311, pp. 38-45, 2000. 

  4. R. Sedgewick, "Algorithms in C, Parts 1-4: Fundamentals, Data Structures, Sorting, Searching", 3rd Ed., Addison-Wesley, 1998. 

  5. Wikipedia, "Quicksort," http://en.wikipedia.org/ wiki/ Quicksort, 2011. 

저자의 다른 논문 :

관련 콘텐츠

오픈액세스(OA) 유형

FREE

Free Access. 출판사/학술단체 등이 허락한 무료 공개 사이트를 통해 자유로운 이용이 가능한 논문

저작권 관리 안내
섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로