• Title/Summary/Keyword: 빠른 정렬

Search Result 77, Processing Time 0.025 seconds

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

  • Lee, Sang-Un
    • The Journal of the Institute of Internet, Broadcasting and Communication
    • /
    • v.15 no.5
    • /
    • pp.61-68
    • /
    • 2015
  • Among comparison sorts, no algorithm excels a current set lower bound of O(nlogn) in operation. Quicksort, the fastest of its kind, has a complexity of O(nlogn) at its best and on average and $O(n^2)$ at worst. This paper thus presents two methods: first is an O(n+k) simple counting sort which operates much more speedily than an O(n+k), (k=maximum value) counting sort, and second is an O(ln) radix counting sort which counts the frequency of numbers in the digit l of a data and saves it in a corresponding virtual bucket in an array, only to virtually divide the array into radix digit numbers. For the 6 experimental data, the proposed algorithm makes O(nlogn) or $O(n^2)$ of Quicksort simple into O(n+k) or O(ln). After all, the proposed sorting algorithm has proved to be much faster than the counting sort and Quicksort.

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

  • Lee, Jae-Dong
    • Journal of KIISE:Computer Systems and Theory
    • /
    • v.26 no.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 (정렬 인덱스 스캔을 이용한 조인기법)

  • Lee, Jong-Baek;Kang, Woon-Hak;Lee, Sang-Won
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2012.06c
    • /
    • pp.16-18
    • /
    • 2012
  • 플래시메모리는 빠른 성능 및 저전력 등 여러 가지 장점 덕분에 저장장치 시장에서 최근 빠른 속도로 하드디스크를 대체해 가고 있다. 특히, 엔터프라이즈 데이터베이스 분야에서 가격 대비 성능 면에서 효과가 높기 때문에 더 주목을 받고 있다. 데이터베이스 분야에서 조인은 가장 자주 사용되는 연산으로 그 성능 개선이 중요한데, 본 논문에서는 플래시메모리를 위한 새로운 조인 처리의 한 방법으로 정렬 인덱스 스캔 방식을 활용하는 방안은 제시한다. 정렬 인덱스 스캔은 최근 플래시메모리 상에서 테이블에 대한 접근 방식의 하나로, 조인결과의 정렬을 고려할 경우, 기존의 전체 테이블 스캔에 기반을 둔 해시조인이나 정렬합병조인과 비교했을 때 상당한 성능 개선을 보장한다.

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

  • Lee, SuBin;Kim, Jong-Hyun
    • Proceedings of the Korean Society of Computer Information Conference
    • /
    • 2022.01a
    • /
    • pp.357-360
    • /
    • 2022
  • 본 논문에서는 대용량 데이터에서 빠르게 주변 데이터를 접근하기 위한 자료구조인 최근접 이웃 탐색(Nearest neighbor search, NNS) 문제를 빠르게 풀 수 있는 바이토닉 정렬(Bitonic sort) 기반 해시 테이블을 GPU기반에서 설계하는 방법과 이를 통해 입자 기반 물리 시뮬레이션을 고속화할 수 있는 방법에 대해 살펴본다. 본 논문에서는 CUDA 아키텍처를 이용하여 해시 테이블을 설계하였으며, 계산양이 가장 큰 데이터 정렬부분을 최적화함으로써 NVIDIA에서 제공하는 CUDA 해시 테이블보다 빠른 결과를 얻을 수 있으며, 이 자료구조를 입자 기반 시뮬레이션에 통합함으로써 고성능 시뮬레이션을 쉽게 제작할 수 있다.

  • PDF

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

  • Lee, Sang-Un
    • The Journal of the Institute of Internet, Broadcasting and Communication
    • /
    • v.14 no.6
    • /
    • pp.295-301
    • /
    • 2014
  • In the absence of a sorting algorithm faster than O(n log n), Quicksort remains the best and fastest of its kind in practice. For given n data, Quicksort records running in O(n log n) at best and $O(n^2)$ at its worst. In this paper, I propose an algorithm by which 3-points average P=(L+M+H)/3 is set as a pivot for first array L=a[s], last array H=a[e], and middle array $M=a[{\lfloor}(s+e)/2{\rfloor}]$ in order to find the more fast than Quicksort. Test results prove that the proposed 3-points average pivot Quicksort has the time complexity of O(n log n) at its best, average, and worst cases. And the proposed algorithm can be reduce the $O(n^2)$ time of Quicksort to O(n log n).

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

  • Seo, Jongkyu;Ock, Chang-Seok;Cho, Hwan-Gue
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2012.11a
    • /
    • pp.576-579
    • /
    • 2012
  • 문서유사도를 비교하는 방법은 지문법과 서열 정렬법이 널리 알려져 있다. 지문법은 계산속도가 빠른 대신 정확도가 떨어지며, 서열정렬법은 계산속도가 느린 대신 정확도가 높다. 다단계 정렬은 두 방법의 비중을 조절하여 문서 유사도를 비교할 수 있는 방법으로, 각 방법의 장점을 얻으면서 단점을 보완하도록 고안되었다[1]. 이 논문에서는 다단계 정렬방법에 대해 설명하고, 다단계정렬 방법에서 발생 가능한 단편화 문제를 제거하여 정확도를 향상시키는 방법에 대해 소개한다.

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

  • Lee, Geon-Ho;Park, Geun-Su
    • Journal of KIISE:Computer Systems and Theory
    • /
    • v.28 no.7
    • /
    • pp.350-355
    • /
    • 2001
  • 블록정렬압축은 빠른 속도로 동작하면서 높은 압축률을 나타내는 압축 방법이다. 또한 블록정렬방식으로 압축된 텍스트는 원래 텍스트를 복원하는 과정에서 접미사배열을 0(n) 시간만에 구할 수 있다. 그러나 접미사배열을 이용하여 효율적인 검색을 수행하려면 lcp(longest common prefix)정보가 추가적으로 필요하다. 본 논문에서는 텍스트와 접미사배열이 주어졌을 때 lcp정보를 0(n) 시간만에 구할 수 있는 알고리즘을 제시한다.

  • PDF

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

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

  • PDF

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

  • Lee, Jun-Su;Ahn, Jae-Gyoon;Yeu, Yun-Ku;Roh, Hong-Chan;Park, Sang-Hyun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2013.05a
    • /
    • pp.894-897
    • /
    • 2013
  • 서열 정렬(sequence alignment)은 유전학(genomic)에서 널리 사용되는 도구 중 하나이다. 최근에는 차세대 시퀀싱 기술(NGS)이 발달함에 따라 데이터의 생산량이 크게 증가했고, 이에 따라 높은 처리량(throughput)을 가진 서열 정렬 알고리즘의 필요성이 증가하였다. 본 논문에서 제안하는 염기 서열 정렬 알고리즘은 시퀀스(sequence)데이터를 그래프 형태로 변형시킨 다음, 마이크로소프트사의 그래프 기반인 메모리(in-memory) 분산시스템(distributed system) 트리니티(Trinity)를 이용해 서열 정렬을 수행한다. 본 논문의 알고리즘은 트리니티 시스템에서 시뮬레이션 염기 데이터를 성공적으로 정렬하였으며, 슬레이브의 개수가 늘어날수록 빠른 속도를 나타내어 확장성(scalability)을 입증했다.

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

  • Lee, Sang-Un
    • The Journal of the Institute of Internet, Broadcasting and Communication
    • /
    • v.15 no.6
    • /
    • pp.95-102
    • /
    • 2015
  • Generally, there is no sorting algorithm much faster than O(nlogn). The quicksort has a best performance O(nlogn) in best and average-case, and $O(n^2)$ in worst-case. This paper suggests virtual radix counting bucket sort such that counting the frequency of numbers in each radix digit, and moves the arbitrary number to proper virtual bucket in the array, and divides the array into radix digit numbers virtually. Also, this algorithm moves the data to proper location within an array for using the minimum auxiliary memory. This algorithm performs k-times such that the number of k digits in given data and the time complexity is O(n). Therefore, this algorithm has a O(kn) time complexity.