• 제목/요약/키워드: 빠른 정렬

검색결과 77건 처리시간 0.027초

빠른 계수 정렬법의 제안 (Proposal of Fast Counting Sort)

  • 이상운
    • 한국인터넷방송통신학회논문지
    • /
    • 제15권5호
    • /
    • pp.61-68
    • /
    • 2015
  • 데이터를 비교 정렬하는 방법들 중 O(nlogn)보다 빠른 방법은 알려져 있지 않고 있으며, 가장 빠른 퀵 정렬법은 최적과 평균의 경우 O(nlogn), 최악의 경우 $O(n^2)$ 수행 복잡도를 갖고 있다. 본 논문은 비교 정렬법이 아닌 O(n+k),(k=최대치)의 계수 정렬법을 보다 빠르게 수행하는 O(n+k)의 단순 계수정렬법과 데이터의 자리 수 l의 숫자별 빈도수를 계수하여 해당 가상 버킷에 저장하는 O(ln)의 기수 계수 정렬법을 제안하였다. 6개의 실험 데이터에 제안된 알고리즘을 적용한 결과, 퀵 정렬의 O(nlogn) 또는 $O(n^2)$을 O(n+k) 또는 O(ln)으로 단순화 시킬 수 있었다. 결론적으로 제안된 방법은 계수정렬법과 퀵 정렬법에 비해 보다 빠른 방법이다.

공유 메모리 병렬 컴퓨터 환경에서 한정된 수의 프로세서를 사용한 범용 Bitonic sorting 알고리즘의 설계 (Design of General -Purpose Bitonic Sorting Algorithms with a Fixed Number of Processors for Shared-Memory Parallel Computers)

  • 이재동
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제26권1호
    • /
    • pp.33-42
    • /
    • 1999
  • 지금까지의 bitonic sorting 에 대한 연구는 N 개의 key를 정렬하기 위해서는 N/2(or N)개의 프로세서가 필요하였다. 여기서는 프로세서의 수가 정렬하고자 하는 key 수에 독립적이고 또한 N/2개 이하인 경우를 고려하였다. 따라서 본 연구에서는 공유 메모리 병렬 컴퓨터 환경에서 N 개의 Key를 고정도니 수의 프로세서를 사용하여 O(log2N) 시간에 정렬 할 수 있는 두 종류의 범용 bitonic sorting 알고리즘을 구현하였다. 첫째로, VITURAL-GPBS 알고리즘은 하나의 프로세서를 사용하여 여러 개의 프로세서가 하는 역할을 모방하므로써 정렬을 수행하도록 하였다. 둘째로, VIRTUAL-GPBS 알고리즘보다 좀 더 효율적이고 빠른 FAST-GPBS 알고리즘을 소개하였다. 두 알고리즘의 주요 차이점은 FAST-GPBS 알고리즘에서는 각각의 프로세서에 배정된 여러 개의 key를 각 프로세서 내에서 가장 빠른 순차 정렬 알고리즘을 사용하면서 먼저 지역적으로 정렬을 함으로써 VIRTUAL-GPBS 보다 효율이 50% 이상 향상된 정렬을 수행할 수 있도록 하였다. FAST-GPBS 알고리즘은 compare-exchange 대신 merge-split 작업을 함으로써 컴퓨터의 사용 효율을 향상시킬 수 있다.

정렬 인덱스 스캔을 이용한 조인기법 (A Join Processing Technique using Sorted Index Scan)

  • 이종백;강운학;이상원
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2012년도 한국컴퓨터종합학술대회논문집 Vol.39 No.1(C)
    • /
    • pp.16-18
    • /
    • 2012
  • 플래시메모리는 빠른 성능 및 저전력 등 여러 가지 장점 덕분에 저장장치 시장에서 최근 빠른 속도로 하드디스크를 대체해 가고 있다. 특히, 엔터프라이즈 데이터베이스 분야에서 가격 대비 성능 면에서 효과가 높기 때문에 더 주목을 받고 있다. 데이터베이스 분야에서 조인은 가장 자주 사용되는 연산으로 그 성능 개선이 중요한데, 본 논문에서는 플래시메모리를 위한 새로운 조인 처리의 한 방법으로 정렬 인덱스 스캔 방식을 활용하는 방안은 제시한다. 정렬 인덱스 스캔은 최근 플래시메모리 상에서 테이블에 대한 접근 방식의 하나로, 조인결과의 정렬을 고려할 경우, 기존의 전체 테이블 스캔에 기반을 둔 해시조인이나 정렬합병조인과 비교했을 때 상당한 성능 개선을 보장한다.

바이토닉 정렬 기반의 GPU 해싱을 이용한 인접 입자의 빠른 접근 기법과 그 응용 사례 (Fast Access Method of Neighboring Particles Using Bitonic Sort Based GPU Hashing, and Its Applications)

  • 이수빈;김종현
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2022년도 제65차 동계학술대회논문집 30권1호
    • /
    • pp.357-360
    • /
    • 2022
  • 본 논문에서는 대용량 데이터에서 빠르게 주변 데이터를 접근하기 위한 자료구조인 최근접 이웃 탐색(Nearest neighbor search, NNS) 문제를 빠르게 풀 수 있는 바이토닉 정렬(Bitonic sort) 기반 해시 테이블을 GPU기반에서 설계하는 방법과 이를 통해 입자 기반 물리 시뮬레이션을 고속화할 수 있는 방법에 대해 살펴본다. 본 논문에서는 CUDA 아키텍처를 이용하여 해시 테이블을 설계하였으며, 계산양이 가장 큰 데이터 정렬부분을 최적화함으로써 NVIDIA에서 제공하는 CUDA 해시 테이블보다 빠른 결과를 얻을 수 있으며, 이 자료구조를 입자 기반 시뮬레이션에 통합함으로써 고성능 시뮬레이션을 쉽게 제작할 수 있다.

  • PDF

3-점 평균 피벗 퀵정렬 (3-Points Average Pivot Quicksort)

  • 이상운
    • 한국인터넷방송통신학회논문지
    • /
    • 제14권6호
    • /
    • pp.295-301
    • /
    • 2014
  • 데이터를 정렬하는 방법들 중 O(n log n)보다 빠른 방법은 알려져 있지 않고 있으며, 가장 빠른 방법으로 퀵정렬이 있다. n개의 데이터에 대해 퀵정렬은 최적의 경우 O(n log n), 최악의 경우 $O(n^2)$ 수행 복잡도를 갖고 있다. 본 논문에서는 퀵정렬보다 빠르게 정렬하는 방법으로, 분할된 리스트의 첫 번째 L=a[s], 마지막 H=a[e]과 중간 $M=[{\lfloor}(s+e)/2{\rfloor}]$에 대해 P=(L+M+H)/3의 3-점 평균을 피벗값으로 결정하는 방법을 제안하였다. 실험 결과 제안된 3-점 평균 피벗 퀵정렬은 최적, 평균, 최악 모두 수행 복잡도가 O(n log n)으로 퀵정렬의 $O(n^2)$ 정렬 시간을 단축시킬 수 있었다.

지문법과 서열정렬법을 결합한 다단계 정렬 방법의 문서 유사도 비교 (A method for comparing documents using fingerprinting and sequence alignment.)

  • 서종규;옥창석;조환규
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2012년도 추계학술발표대회
    • /
    • pp.576-579
    • /
    • 2012
  • 문서유사도를 비교하는 방법은 지문법과 서열 정렬법이 널리 알려져 있다. 지문법은 계산속도가 빠른 대신 정확도가 떨어지며, 서열정렬법은 계산속도가 느린 대신 정확도가 높다. 다단계 정렬은 두 방법의 비중을 조절하여 문서 유사도를 비교할 수 있는 방법으로, 각 방법의 장점을 얻으면서 단점을 보완하도록 고안되었다[1]. 이 논문에서는 다단계 정렬방법에 대해 설명하고, 다단계정렬 방법에서 발생 가능한 단편화 문제를 제거하여 정확도를 향상시키는 방법에 대해 소개한다.

블록정렬압축을 이용한 접미사배열의 효율적인 저장 (Efficient Storing of Suffix Arrays using Block-Sorting Compression)

  • 이건호;박근수
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제28권7호
    • /
    • pp.350-355
    • /
    • 2001
  • 블록정렬압축은 빠른 속도로 동작하면서 높은 압축률을 나타내는 압축 방법이다. 또한 블록정렬방식으로 압축된 텍스트는 원래 텍스트를 복원하는 과정에서 접미사배열을 0(n) 시간만에 구할 수 있다. 그러나 접미사배열을 이용하여 효율적인 검색을 수행하려면 lcp(longest common prefix)정보가 추가적으로 필요하다. 본 논문에서는 텍스트와 접미사배열이 주어졌을 때 lcp정보를 0(n) 시간만에 구할 수 있는 알고리즘을 제시한다.

  • PDF

블록정렬압축을 이용한 접미사배열의 효율적인 저장 (Efficient storing of suffix arrays using block-sorting compression)

  • 이건호;박근수
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 가을 학술발표논문집 Vol.27 No.2 (1)
    • /
    • pp.554-556
    • /
    • 2000
  • 블록정렬압축은 빠른 속도로 동작하면서 높은 압축률을 나타내는 압축 방법이다. 또한 블록정렬방식으로 압축된 텍스트는 원래 텍스트를 복원하는 과정에서 접미사배열을 O(n) 시간만에 구할 수 있다. 그러나 접미사배열을 이용하여 효율적인 검색을 수행하려면 lcp(longest common prefix)정보가 추가적으로 필요하다. 본 논문에서는 텍스트와 접미사배열이 주어졌을 때 lcp정보를 O(n)시간만에 구할 수 있는 알고리즘을 제시한다.

  • PDF

그래프 기반 분산 시스템을 이용한 염기 서열 정렬 (DNA Sequence Alignment Using a Graph-based Distributed System)

  • 이준수;안재균;여윤구;노홍찬;박상현
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2013년도 춘계학술발표대회
    • /
    • pp.894-897
    • /
    • 2013
  • 서열 정렬(sequence alignment)은 유전학(genomic)에서 널리 사용되는 도구 중 하나이다. 최근에는 차세대 시퀀싱 기술(NGS)이 발달함에 따라 데이터의 생산량이 크게 증가했고, 이에 따라 높은 처리량(throughput)을 가진 서열 정렬 알고리즘의 필요성이 증가하였다. 본 논문에서 제안하는 염기 서열 정렬 알고리즘은 시퀀스(sequence)데이터를 그래프 형태로 변형시킨 다음, 마이크로소프트사의 그래프 기반인 메모리(in-memory) 분산시스템(distributed system) 트리니티(Trinity)를 이용해 서열 정렬을 수행한다. 본 논문의 알고리즘은 트리니티 시스템에서 시뮬레이션 염기 데이터를 성공적으로 정렬하였으며, 슬레이브의 개수가 늘어날수록 빠른 속도를 나타내어 확장성(scalability)을 입증했다.

가상의 기수계수버킷 정렬 (Virtual Radix Counting Bucket sort)

  • 이상운
    • 한국인터넷방송통신학회논문지
    • /
    • 제15권6호
    • /
    • pp.95-102
    • /
    • 2015
  • 데이터를 정렬하는 방법들 중 O(nlogn)보다 빠른 방법은 알려져 있지 않고 있으며, 가장 빠른 방법으로 퀵정렬이 있으며, 이 정렬법은 n개의 데이터에 대해 최적과 평균의 경우 O(nlogn), 최악의 경우$O(n^2)$ 수행 복잡도를 갖고 있다. 본 논문에서는 리스트를 기수 숫자별로 빈도수를 계수하여 해당 가상 버킷에 저장하는 가상분할방법을 적용하였다. 또한 추가적인 메모리를 최소화시키기 위해 리스트 상에서 해당 버킷에 데이터들을 이동시키는 방법을 적용하였다. 제안된 알고리즘은 주어진 숫자의 자리수 k만큼 분할되며, 각 자리수에 대해 수행복잡도가 O(n)으로 O(kn) 알고리즘이다.