KR101482229B1 - 컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체 - Google Patents

컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체 Download PDF

Info

Publication number
KR101482229B1
KR101482229B1 KR20130047652A KR20130047652A KR101482229B1 KR 101482229 B1 KR101482229 B1 KR 101482229B1 KR 20130047652 A KR20130047652 A KR 20130047652A KR 20130047652 A KR20130047652 A KR 20130047652A KR 101482229 B1 KR101482229 B1 KR 101482229B1
Authority
KR
South Korea
Prior art keywords
data
sorting
sets
alignment
collation
Prior art date
Application number
KR20130047652A
Other languages
English (en)
Other versions
KR20140128770A (ko
Inventor
허진석
최안나
Original Assignee
주식회사 실리콘아츠
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 실리콘아츠 filed Critical 주식회사 실리콘아츠
Priority to KR20130047652A priority Critical patent/KR101482229B1/ko
Priority to PCT/KR2014/002966 priority patent/WO2014178544A1/ko
Publication of KR20140128770A publication Critical patent/KR20140128770A/ko
Application granted granted Critical
Publication of KR101482229B1 publication Critical patent/KR101482229B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 컴퓨터 실행 가능한 데이터 정렬 기술에 관한 것으로, (a) X개의 데이터를 휘발성 메모리에서 한꺼번에 처리 가능한 N개(상기 N은 자연수) 이하의 데이터를 포함하는 Y개의 데이터 정렬 집합을 생성하는 단계, (b) 상기 Y 개의 데이터 정렬 집합 각각에 대하여, 변곡점을 검출하여 M개(상기 M은 자연수)의 데이터 부분집합을 생성하고, 상기 M개의 데이터 부분집합을 병합하여 1차 정렬을 수행하는 단계 및 (c) 상기 1차 정렬이 수행된 Y개의 데이터 정렬 집합을 병합하여 2차 정렬을 수행하는 단계를 포함한다. 따라서 병합 정렬 과정에서 변곡점 추출을 통해 데이터를 효율적으로 정렬할 수 있다.

Description

컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체{COMPUTER ENABLED METHOD OF DATA SORT, SYSTEM PERFORMING THE SAME AND STORAGE MEDIA STORING THE SAME}
본 발명은 컴퓨터 실행 가능한 데이터 정렬 기술에 관한 것으로, 보다 상세하게는, 병합 정렬 과정에서 변곡점 추출을 통해 데이터를 효율적으로 정렬할 수 있는 컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체에 관한 것이다.
일반적으로, 데이터 정렬은 데이터 항목을 지정된 순서대로 나열하는 것을 말한다. 이때, 데이터는 값이 작은 쪽에서 큰 쪽으로 나열하는 오름차순 방식(Ascending Order) 또는 값이 큰 쪽에서 작은 쪽으로 나열하는 내림차순 방식(Descending Order)으로 정렬될 수 있다. 데이터 정렬은 크게 비교에 의한 정렬 및 분산에 의한 정렬로 나눌 수 있다. 여기에서, 비교에 의한 정렬은 선택 정렬, 퀵 정렬, 버블 정렬, 삽입 정렬, 셀 정렬, 히프 정렬 및 병합 정렬을 포함하고, 분산에 의한 정렬은 기수 정렬 및 기수 교환 정렬을 포함한다.
한국등록특허 제10-0968374호는 전/후 처리기에서 압축 스트림의 결함을 처리하거나 특정 설정으로 정합하면서 발생하는 압축 스트림의 이동을 수행할 수 있는 헤더 정보 정렬에 의한 데이터의 처리방법, 데이터 자료의 처리장치, 및 그 처리장치를 포함한 데이터 처리장비를 개시한다. 이러한 데이터 처리 방법은 전/후 처리기에 의한 계층 N의 헤더 길이가 변한 경우에도 페이로드의 이동을 바이트 단위로 수행하여 전/후 처리기의 속도를 매우 빠르게 향상시킬 수 있다.
한국공개특허 10-2013-0015731호는 한번의 읽고 쓰기로 정렬을 수행하여 정렬 과정 중에 시간이 가장 많이 걸리는 디스크 입출력 횟수를 줄이는 부분적인 인덱스 RID 정렬을 통한 파티션 스캔 방법 및 장치, 메모리 시스템, 및 데이터 정렬 방법을 개시한다. 이러한 데이터 정렬 방법은 임의적인 접근을 최소화하고 순차적인 접근을 효과적으로 처리할 수 있게 설계되었기 때문에 플래시 메모리를 이용한 엔터프라이즈 스토리지 수단에 있어서 효율이 크게 증대될 수 있다.
병합 정렬은 부분적으로 정렬되어 있는 데이터를 정렬할 때 비효율적이고 대용량 데이터의 정렬 시 내부 메모리의 사용이 불가능하여 외부 메모리의 부하가 증가하는 문제점이 있다.
한국등록특허 제10-0968374호 한국공개특허 10-2013-0015731호
본 발명의 일 실시예는 병합 정렬 과정에서 변곡점 검출을 통해 데이터를 효율적으로 정렬할 수 있는 컴퓨터 실행 가능한 데이터 정렬 방법을 제공하고자 한다.
본 발명의 일 실시예는 1차 정렬 및 2차 정렬 과정을 수행하여 대용량 데이터를 효율적으로 정렬할 수 있는 컴퓨터 실행 가능한 데이터 정렬 방법을 제공하고자 한다.
본 발명의 일 실시예는 소프트웨어 또는 하드웨어를 통해 데이터 정렬을 병렬로 동시에 처리하여 데이터 정렬 시간을 절감할 수 있는 컴퓨터 실행 가능한 데이터 정렬 방법을 제공하고자 한다.
실시예들 중에서, 컴퓨터 실행 가능한 데이터 정렬 방법은 (a) X개의 데이터를 휘발성 메모리에서 한꺼번에 처리 가능한 N개(상기 N은 자연수) 이하의 데이터를 포함하는 Y개의 데이터 정렬 집합을 생성하는 단계, (b) 상기 Y 개의 데이터 정렬 집합 각각에 대하여, 변곡점을 검출하여 M개(상기 M은 자연수)의 데이터 부분집합을 생성하고, 상기 M개의 데이터 부분집합을 병합하여 1차 정렬을 수행하는 단계 및 (c) 상기 1차 정렬이 수행된 Y개의 데이터 정렬 집합을 병합하여 2차 정렬을 수행하는 단계를 포함한다.
일 실시예에서, 상기 (a) 단계는 상기 X개의 데이터를 (Y-1)개의 데이터 정렬 집합과 단일의 데이터 정렬 집합으로 분할하는 단계를 포함하고, 상기 (Y-1)개의 데이터 정렬 집합 각각에 있는 데이터의 개수가 상기 N에 해당할 수 있다. 상기 (a) 단계는 상기 단일의 데이터 정렬 집합에 있는 데이터의 개수는 상기 N과 같거나 적을 수 있다.
상기 (a) 단계는 특정 오차 범위 이내에 해당하도록 상기 X개의 데이터를 순차적으로 가변의 상기 N개 이하의 데이터로 분할하여 상기 Y개의 데이터 정렬 집합을 생성하는 단계를 포함할 수 있다.
상기 (a) 단계는 상기 X개의 데이터에 대한 변곡점을 검출하는 단계 및 상기 검출된 변곡점의 개수에 따라 상기 특정 오차 범위를 결정하여 상기 N개 이하의 데이터로 분할하는 단계를 포함할 수 있다.
일 실시예에서, 상기 (b) 단계는 상기 N개 이하의 데이터를 분석하여 상기 N개 이하의 데이터 흐름의 변화를 나타내는 변곡점에 대한 인덱스 값을 저장하는 단계 및 상기 저장된 인덱스 값을 기초로 상기 N개 이하의 데이터를 분할하여 상기 M개의 데이터 부분집합을 생성하는 단계를 포함할 수 있다.
상기 (b) 단계는 상기 검출된 N개 이하의 데이터에 대한 변곡점이 연속하여 발생하면 상기 N개 이하의 데이터를 2 이상의 배수로 분할하여 M개의 데이터 부분집합을 생성하는 단계를 더 포함할 수 있다.
상기 (b) 단계는 상기 Y개의 데이터 정렬 집합 각각에 대한 상기 M개의 데이터 부분집합의 병합을 병렬로 처리하는 단계를 포함할 수 있다.
상기 (b) 단계는 상기 1차 정렬이 완료되면 상기 Y개의 데이터 정렬 집합에 대한 데이터 저장 형식을 체크하는 단계 및 상기 체크된 데이터 저장 형식에 따라 직접 정렬(Direct Sorting) 또는 간접 정렬(Indirect Sorting)을 결정하여 특정 메모리에 저장하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 (c) 단계는 상기 2차 정렬이 수행되면 상기 X개의 데이터에 대한 정렬 상태를 확인하는 단계 및 상기 X개의 데이터에 대한 모든 정렬이 완료되지 않았으면 상기 2차 정렬을 반복하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 2차 정렬이 완료되면 상기 X개의 데이터에 대한 데이터 저장 형식을 체크하는 단계 및 상기 체크된 데이터 저장 형식에 따라 직접 정렬(Direct Sorting) 또는 간접 정렬(Indirect Sorting)을 결정하여 비휘발성 메모리에 저장하는 단계를 더 포함할 수 있다.
실시예들 중에서, 컴퓨터 실행 가능한 데이터 정렬 시스템은 X개의 데이터를 휘발성 메모리에서 한꺼번에 처리 가능한 N개(상기 N은 자연수) 이하의 데이터를 포함하는 Y개의 데이터 정렬 집합을 생성하는 데이터 정렬 집합 생성부, 상기 Y 개의 데이터 정렬 집합 각각에 대하여, 변곡점을 검출하여 M개(상기 M은 자연수)의 데이터 부분집합을 생성하고, 상기 M개의 데이터 부분집합을 병합하여 1차 정렬을 수행하는 1차 정렬 수행부 및 상기 1차 정렬이 수행된 Y개의 데이터 정렬 집합을 병합하여 2차 정렬을 수행하는 2차 정렬 수행부를 포함한다.
일 실시예에서, 상기 2차 정렬이 완료되면 상기 X개의 데이터에 대한 데이터 저장 형식을 체크하고 상기 체크된 데이터 저장 형식에 따라 직접 정렬(Direct Sorting) 또는 간접 정렬(Indirect Sorting)을 결정하여 비휘발성 메모리에 저장하는 비휘발성 메모리 저장부를 더 포함할 수 있다.
실시예들 중에서, 컴퓨터 실행 가능한 데이터 정렬 기록매체는 컴퓨터 실행 가능한 데이터 정렬 시스템에서 수행되는 데이터 정렬을 제공하는 컴퓨터 프로그램을 기록한 컴퓨터 실행 가능한 데이터 정렬 기록매체에 있어서, X개의 데이터를 휘발성 메모리에서 한꺼번에 처리 가능한 N개(상기 N은 자연수) 이하의 데이터를 포함하는 Y개의 데이터 정렬 집합을 생성하는 기능, 상기 Y 개의 데이터 정렬 집합 각각에 대하여, 변곡점을 검출하여 M개(상기 M은 자연수)의 데이터 부분집합을 생성하고, 상기 M개의 데이터 부분집합을 병합하여 1차 정렬을 수행하는 기능 및 상기 1차 정렬이 수행된 Y개의 데이터 정렬 집합을 병합하여 2차 정렬을 수행하는 기능을 포함한다.
본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 데이터 정렬 방법은 병합 정렬 과정에서 변곡점 추출을 통해 데이터를 효율적으로 정렬할 수 있다.
본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 데이터 정렬 방법은 1차 정렬 및 2차 정렬 과정을 수행하여 대용량 데이터를 효율적으로 정렬할 수 있다.
본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 데이터 정렬 방법은 소프트웨어 또는 하드웨어를 통해 데이터 정렬을 병렬로 동시에 처리하여 데이터 정렬 시간을 절감할 수 있다.
도 1은 종래의 병합 정렬 과정을 설명하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 데이터 정렬 시스템을 설명하는 블록도이다.
도 3은 도 2에 있는 컴퓨터 실행 가능한 데이터 정렬 시스템에서 수행되는 컴퓨터 실행 가능한 데이터 정렬 과정을 설명하는 순서도이다.
도 4는 도 2에 있는 컴퓨터 실행 가능한 데이터 정렬 과정을 예시한 도면이다.
도 5는 도 2에 있는 컴퓨터 실행 가능한 데이터 정렬 과정에서 변곡점 검출을 통한 데이터의 정렬을 예시한 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
“및/또는”의 용어는 하나 이상의 관련 항목으로부터 제시 가능한 모든 조합을 포함하는 것으로 이해되어야 한다. 예를 들어, “제1 항목, 제2 항목 및/또는 제3 항목”의 의미는 제1, 제2 또는 제3 항목뿐만 아니라 제1, 제2 또는 제3 항목들 중 2개 이상으로부터 제시될 수 있는 모든 항목의 조합을 의미한다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한, 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 종래의 병합 정렬 과정을 설명하는 도면이다.
도 1을 참조하면, 병합 정렬은 두 개의 부분집합을 순차적으로 정렬하여 하나의 집합으로 병합할 수 있다.
일 실시예에서, 병합 정렬은 제1 데이터 부분집합부터 제8 데이터 부분집합(69, 10, 30, 2, 16, 8, 31 및 22)까지 오름차순 정렬을 수행할 때, 1단계에서 제1 데이터 부분집합과 제2 데이터 부분집합을 정렬하여 하나의 1-2 데이터 부분집합을 생성하고, 2단계에서 제3 데이터 부분집합과 제4 데이터 부분집합을 정렬하여 하나의 3-4 데이터 부분집합을 생성하고, 3단계에서 1-2 데이터 부분집합과 3-4 데이터 부분집합을 정렬하여 하나의 1-2-3-4 데이터 부분집합을 생성하고 제5 데이터 부분집합과 제6 데이터 부분집합을 정렬하여 하나의 5-6 데이터 부분집합을 생성하고, 4단계에서 제7 데이터 부분집합과 제8 데이터 부분집합을 정렬하여 하나의 7-8 데이터 부분집합을 생성하고, 5단계에서 5-6 데이터 부분집합과 7-8 데이터 부분집합을 정렬하여 하나의 5-6-7-8 데이터 부분집합을 생성하며, 6단계에서 1-2-3-4 데이터 부분집합과 5-6-7-8 데이터 부분집합을 정렬하여 하나의 1-2-3-4-5-6-7-8 데이터를 생성할 수 있다.
종래의 병합 정렬은 시간 복잡도가 0으로 안정적인 장점이 있지만, 부분적으로 정렬된 데이터를 정렬할 때 또는 대용량 데이터를 정렬할 때 효율성이 떨어진다는 단점이 있다. 따라서 본 발명은 병합 정렬 과정에서 변곡점을 추출하여 부분적으로 정렬된 데이터 및 대용량 데이터를 효율적으로 정렬할 수 있다.
도 2는 본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 데이터 정렬 시스템을 설명하는 블록도이다.
도 2를 참조하면, 컴퓨터 실행 가능한 데이터 정렬 시스템(100)(이하, 데이터 정렬 시스템(100))은 데이터 정렬 집합 생성부(210), 1차 정렬 수행부(220), 2차 정렬 수행부(230), 비휘발성 메모리 저장부(240) 및 제어부(250)를 포함한다.
데이터 정렬 집합 생성부(210)는 X개의 데이터를 휘발성 메모리에서 한꺼번에 처리 가능한 N개(N은 자연수) 이하의 데이터를 포함하는 Y개의 데이터 정렬 집합을 생성한다.
일 실시예에서, 데이터 정렬 집합 생성부(210)는 X개의 데이터를 (Y-1)개의 데이터 정렬 집합과 단일의 데이터 정렬 집합으로 분할할 수 있다. 여기에서, (Y-1)개의 데이터 정렬 집합 각각에 있는 데이터의 개수는 N에 해당할 수 있고, 단일의 데이터 정렬 집합에 있는 데이터의 개수는 N과 같거나 적을 수 있다. 예를 들어, 데이터 정렬 집합 생성부(210)는 115개의 데이터를 5개의 데이터 정렬 집합과 1개의 데이터 정렬 집합으로 분할할 수 있다. 5개의 데이터 정렬 집합 각각에 있는 데이터의 개수는 20개에 해당하고, 1개의 데이터 정렬 집합에 있는 데이터의 개수는 15개에 해당할 수 있다.
다른 일 실시예에서, 데이터 정렬 집합 생성부(210)는 특정 오차 범위 이내에 해당하도록 X개의 데이터를 순차적으로 N개 이하의 데이터로 분할하여 Y개의 데이터 정렬 집합을 생성할 수 있다.
데이터 정렬 집합 생성부(210)는 X개의 데이터에 대한 변곡점을 검출하고 검출된 변곡점의 개수에 따라 특정 오차 범위를 결정하여 N개 이하의 데이터로 분할할 수 있다. 예를 들어, 데이터 정렬 집합 생성부(210)는 100개의 데이터를 분석하여 100개의 데이터에 대한 변곡점을 검출할 수 있다. 데이터 정렬 집합 생성부(210)는 100개의 데이터에 대한 변곡점의 개수가 23개에 해당하면 특정 오차 범위를 [1]로 결정하고 변곡점의 개수를 6개, 6개, 6개 및 5개 포함하도록 100개의 데이터를 분할하여 4개의 데이터 정렬 집합을 생성할 수 있다. 다른 예를 들어, 데이터 정렬 집합 생성부(210)는 100개의 데이터에 대한 변곡점의 개수가 59개에 해당하면 특정 오차 범위를 [3]로 결정하고 변곡점의 개수를 13개, 13개, 13개, 10개 및 10개 포함하도록 100개의 데이터를 분할하여 5개의 데이터 정렬 집합을 생성할 수 있다.
1차 정렬 수행부(220)는 Y 개의 데이터 정렬 집합 각각에 대하여, 변곡점을 검출하여 M개(M은 자연수)의 데이터 부분집합을 생성하고, M개의 데이터 부분집합을 병합하여 1차 정렬을 수행한다.
일 실시예에서, 1차 정렬 수행부(220)는 N개 이하의 데이터를 분석하여 N개 이하의 데이터 흐름의 변화를 나타내는 변곡점에 대한 인덱스 값을 저장하고 저장된 인덱스 값을 기초로 N개 이하의 데이터를 분할하여 M개의 데이터 부분집합을 생성할 수 있다. 예를 들어, 도 5에서, 1차 정렬 수행부(220)는 1, 3, 5, 4, 2, 6, 8, 9, 10, 7의 10개의 데이터(a)를 분석하여 10개의 데이터 흐름의 변화(b)를 나타내는 변곡점에 대한 인덱스 값을 저장(b-1)하고, 저장된 인덱스 값(b-1)을 기초로 10개의 데이터를 분할하여 3개, 2개, 4개 및 1개의 데이터 부분집합을 생성(c)할 수 있다. 여기에서, 1차 정렬 수행부(220)는 10개의 데이터 흐름의 변화(b)가 하향(b-1에서 I2↘ 및 I1↘)에 해당하는 데이터 부분집합을 정렬(d)할 수 있다. 이때, 정렬은 오름차순(Ascending Order)에 해당할 수 있다.
다시 도 2를 참조하면, 1차 정렬 수행부(220)는 검출된 N개 이하의 데이터에 대한 변곡점이 연속하여 발생하면 N개 이하의 데이터를 2 이상의 배수로 분할하여 M개의 데이터 부분집합을 생성할 수 있다. 예를 들어, 1차 정렬 수행부(220)는 10개의 데이터를 분석하여 10개의 데이터 흐름의 변화(즉, 변곡점)가 데이터 1개 단위로 4번 이상 연속하여 발생하면 10개의 데이터를 데이터 흐름의 변화에 따라 분할하지 않고 2개씩 분할하여 5개의 데이터 부분집합을 생성할 수 있다.
1차 정렬 수행부(220)는 Y개의 데이터 정렬 집합 각각에 대한 M개의 데이터 부분집합의 병합을 병렬로 처리할 수 있다.
일 실시예에서, 1차 정렬 수행부(220)는 소프트웨어를 통해 Y개의 데이터 정렬 집합 각각에 대한 M개의 데이터 부분집합의 병합을 병렬로 처리할 수 있다. 예를 들어, 1차 정렬 수행부(220)는 복수의 FIFO(First In First Out) 구조들을 포함하고 있는 소프트웨어를 통해 4개의 데이터 정렬 집합 각각에 대한 10개의 데이터 부분집합의 병합을 동시에 처리할 수 있다.
다른 일 실시예에서, 1차 정렬 수행부(220)는 하드웨어를 통해 Y개의 데이터 정렬 집합 각각에 대한 M개의 데이터 부분집합의 병합을 병렬로 처리할 수 있다. 예를 들어, 1차 정렬 수행부(220)는 듀얼코어(Dual-Core) 또는 쿼드코어(Quad-Core)를 포함하고 있는 하드웨어를 통해 4개의 데이터 정렬 집합 각각에 대한 5개의 데이터 부분집합의 병합을 동시에 처리할 수 있다.
1차 정렬 수행부(220)는 1차 정렬이 완료되면 Y개의 데이터 정렬 집합에 대한 데이터 저장 형식을 체크하고 데이터 저장 형식에 따라 직접 정렬(Direct Sorting) 또는 간접 정렬(Indirect Sorting)을 결정하여 특정 메모리에 저장할 수 있다. 여기에서, 특정 메모리는 1차 정렬이 완료되면 Y개의 데이터 정렬 집합을 임시적으로 저장하고 있어, 2차 정렬 수행부(230)에서 2차 정렬 수행 시 1차 정렬이 완료된 Y개의 데이터 정렬 집합을 빠르게 읽을 수 있도록 할 수 있다.
일 실시예에서, 1차 정렬 수행부(220)는 Y개의 데이터 정렬 집합에 대한 데이터 저장 형식을 [데이터(Data)]로 체크하면 직접 정렬(Direct Sorting)을 통해 캐시 메모리(Cache Memory)에 저장할 수 있다. 여기에서, 직접 정렬은 Y개의 데이터 정렬 집합에 대한 데이터들만 출력하여 정렬을 수행할 수 있다.
다른 일 실시예에서, 1차 정렬 수행부(220)는 Y개의 데이터 정렬 집합에 대한 데이터 저장 형식을 [인덱스(Index)]로 체크하면 간접 정렬(Indirect Sorting)을 통해 캐시 메모리(Cache Memory)에 저장할 수 있다. 여기에서, 간접 정렬은 Y개의 데이터 정렬 집합에 대한 인덱스들만 출력하여 정렬을 수행할 수 있다.
2차 정렬 수행부(230)는 1차 정렬이 수행된 Y개의 데이터 정렬 집합을 병합하여 2차 정렬을 수행한다.
일 실시예에서, 2차 정렬 수행부(230)는 2차 정렬이 수행되면 X개의 데이터에 대한 정렬 상태를 확인하고 X개의 데이터에 대한 모든 정렬이 완료되지 않았으면 2차 정렬을 반복할 수 있다. 예를 들어, 2차 정렬 수행부(230)는 특정 메모리에서 1차 정렬이 완료된 10개의 데이터 정렬 집합(여기에서, 10개의 데이터 정렬 집합은 각각 10개의 데이터(N에 해당함)를 포함함)을 읽어 10개의 데이터 정렬 집합에 대한 2차 정렬을 수행한다. 2차 정렬 수행부(230)는 2차 정렬이 수행된 100개의 데이터에 대한 정렬 상태를 확인하고 100개의 데이터에 대한 모든 정렬이 완료되지 않았으면 2차 정렬을 반복할 수 있다.
비휘발성 메모리 저장부(240)는 2차 정렬이 완료되면 X개의 데이터에 대한 데이터 저장 형식을 체크하고 데이터 저장 형식에 따라 직접 정렬(Direct Sorting) 또는 간접 정렬(Indirect Sorting)을 결정하여 비휘발성 메모리에 저장한다. 여기에서, 비휘발성 메모리는 휘발성 메모리가 아닌 다른 메모리(예를 들어, 하드, CD, 디스켓, usb)에 해당할 수 있다.
일 실시예에서, 비휘발성 메모리 저장부(240)는 X개의 데이터에 대한 데이터 저장 형식을 [데이터(Data)]로 체크하면 직접 정렬(Direct Sorting)을 통해 비휘발성 메모리에 저장할 수 있다. 여기에서, 직접 정렬은 X개의 데이터에 대한 데이터들만 출력하여 정렬을 수행할 수 있다.
다른 일 실시예에서, 비휘발성 메모리 저장부(240)는 X개의 데이터에 대한 데이터 저장 형식을 [인덱스(Index)]로 체크하면 간접 정렬(Indirect Sorting)을 통해 비휘발성 메모리에 저장할 수 있다. 여기에서, 간접 정렬은 X개의 데이터에 대한 인덱스들만 출력하여 정렬을 수행할 수 있다.
제어부(250)는 데이터 정렬 시스템(100)의 전체적인 동작을 제어하고, 데이터 정렬 집합 생성부(210), 1차 정렬 수행부(220), 2차 정렬 수행부(230) 및 비휘발성 메모리 저장부(240) 간의 제어 흐름 또는 데이터 흐름을 제어할 수 있다.
도 3은 도 2에 있는 컴퓨터 실행 가능한 데이터 정렬 시스템에서 수행되는 컴퓨터 실행 가능한 데이터 정렬 과정을 설명하는 순서도이다.
도 3을 참조하면, 데이터 정렬 집합 생성부(210)는 X개의 데이터를 휘발성 메모리에서 한꺼번에 처리 가능한 N개(N은 자연수) 이하의 데이터를 포함하는 Y개의 데이터 정렬 집합을 생성한다(단계 S301).
일 실시예에서, 데이터 정렬 집합 생성부(210)는 X개의 데이터를 (Y-1)개의 데이터 정렬 집합과 단일의 데이터 정렬 집합으로 분할할 수 있다. 여기에서, (Y-1)개의 데이터 정렬 집합 각각에 있는 데이터의 개수는 N에 해당할 수 있고, 단일의 데이터 정렬 집합에 있는 데이터의 개수는 N과 같거나 적을 수 있다. 예를 들어, 도 4에서, 데이터 정렬 집합 생성부(210)는 X개의 데이터(a)를 N개의 데이터를 포함하는 2개의 데이터 정렬 집합과 N개 또는 N개 이하의 데이터를 포함하는 단일의 데이터 정렬 집합으로 분할(b)할 수 있다.
1차 정렬 수행부(220)는 Y 개의 데이터 정렬 집합 각각에 대하여, 변곡점을 검출하여 M개(M은 자연수)의 데이터 부분집합을 생성하고, M개의 데이터 부분집합을 병합하여 1차 정렬을 수행한다(단계 S302).
일 실시예에서, 1차 정렬 수행부(220)는 N개 이하의 데이터를 분석하여 N개 이하의 데이터 흐름의 변화를 나타내는 변곡점에 대한 인덱스 값을 저장하고 저장된 인덱스 값을 기초로 N개 이하의 데이터를 분할하여 M개의 데이터 부분집합을 생성할 수 있다. 예를 들어, 도 4에서, 1차 정렬 수행부(220)는 변곡점에 대한 인덱스 값을 기초로 Y1 데이터 정렬 집합을 3개의 데이터 부분집합으로 분할하고 Y2 데이터 정렬 집합을 4개의 데이터 부분집합으로 분할하며 Y3 데이터 정렬 집합을 3개의 데이터 부분집합으로 분할(c)할 수 있다. 1차 정렬 수행부(220)는 분할된 각각의 데이터 부분집합을 병합하여 1차 정렬(d)을 수행할 수 있다.
1차 정렬 수행부(220)는 1차 정렬이 완료되면 Y개의 데이터 정렬 집합에 대한 데이터 저장 형식을 체크하고 데이터 저장 형식에 따라 직접 정렬(Direct Sorting) 또는 간접 정렬(Indirect Sorting)을 결정하여 특정 메모리에 저장할 수 있다.
2차 정렬 수행부(230)는 1차 정렬이 수행된 Y개의 데이터 정렬 집합을 병합하여 2차 정렬을 수행한다(단계 S303).
일 실시예에서, 2차 정렬 수행부(230)는 2차 정렬이 수행되면 X개의 데이터에 대한 정렬 상태를 확인하고 X개의 데이터에 대한 모든 정렬이 완료되지 않았으면 2차 정렬을 반복할 수 있다. 예를 들어, 도 4에서, 2차 정렬 수행부(230)는 1차 정렬 수행부(230)에서 1차 정렬된 Y개의 데이터 정렬 집합(d)을 병합하여 X개의 데이터로 정렬(e)할 수 있다.
비휘발성 메모리 저장부(240)는 2차 정렬이 완료되면 X개의 데이터에 대한 데이터 저장 형식을 체크하고 데이터 저장 형식에 따라 직접 정렬(Direct Sorting) 또는 간접 정렬(Indirect Sorting)을 결정하여 비휘발성 메모리에 저장한다(단계 S304).
상기에서는 본 출원의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 출원을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 컴퓨터 실행 가능한 데이터 정렬 시스템
210: 데이터 정렬 집합 생성부
220: 1차 정렬 수행부
230: 2차 정렬 수행부
240: 비휘발성 메모리 저장부
250: 제어부

Claims (14)

  1. (a) X개의 데이터를 휘발성 메모리에서 한꺼번에 처리 가능한 N개(상기 N은 자연수) 이하의 데이터를 포함하는 Y개의 데이터 정렬 집합을 생성하는 단계;
    (b) 상기 Y 개의 데이터 정렬 집합 각각에 대하여, 변곡점을 검출하여 M개(상기 M은 자연수)의 데이터 부분집합을 생성하고, 상기 M개의 데이터 부분집합을 병합하여 1차 정렬을 수행하는 단계;
    (c) 상기 1차 정렬이 수행된 Y개의 데이터 정렬 집합을 병합하여 2차 정렬을 수행하는 단계; 및
    (d) 상기 2차 정렬이 완료되면 상기 X개의 데이터에 대한 데이터 저장 형식을 체크하고 상기 체크된 데이터 저장 형식에 따라 직접 정렬(Direct Sorting) 또는 간접 정렬(Indirect Sorting)을 결정하여 비휘발성 메모리에 저장하는 단계를 포함하는 컴퓨터 실행 가능한 데이터 정렬 방법.
  2. 제1항에 있어서, 상기 (a) 단계는
    상기 X개의 데이터를 (Y-1)개의 데이터 정렬 집합과 단일의 데이터 정렬 집합으로 분할하는 단계를 포함하고,
    상기 (Y-1)개의 데이터 정렬 집합 각각에 있는 데이터의 개수는 상기 N에 해당하는 것을 특징으로 하는 컴퓨터 실행 가능한 데이터 정렬 방법.
  3. 제2항에 있어서, 상기 (a) 단계는
    상기 단일의 데이터 정렬 집합에 있는 데이터의 개수가 상기 N과 같거나 적은 것을 특징으로 하는 컴퓨터 실행 가능한 데이터 정렬 방법.
  4. 제1항에 있어서, 상기 (a) 단계는
    상기 X개의 데이터에 대한 변곡점을 검출하여 검출된 변곡점의 개수에 따라 특정 오차 범위를 결정하고 상기 특정 오차 범위 이내에 해당하도록 상기 X개의 데이터를 순차적으로 가변의 상기 N개 이하의 데이터로 분할하여 상기 Y개의 데이터 정렬 집합을 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 데이터 정렬 방법.
  5. 삭제
  6. 제4항에 있어서, 상기 (b) 단계는
    상기 N개 이하의 데이터를 분석하여 상기 N개 이하의 데이터 흐름의 변화를 나타내는 변곡점에 대한 인덱스 값을 저장하는 단계; 및
    상기 저장된 인덱스 값을 기초로 상기 N개 이하의 데이터를 분할하여 상기 M개의 데이터 부분집합을 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 데이터 정렬 방법.
  7. 제6항에 있어서, 상기 (b) 단계는
    상기 검출된 N개 이하의 데이터에 대한 변곡점이 연속하여 발생하면 상기 N개 이하의 데이터를 2 이상의 배수로 분할하여 M개의 데이터 부분집합을 생성하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 데이터 정렬 방법.
  8. 제1항에 있어서, 상기 (b) 단계는
    상기 Y개의 데이터 정렬 집합 각각에 대한 상기 M개의 데이터 부분집합의 병합을 병렬로 처리하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 데이터 정렬 방법.
  9. 제8항에 있어서, 상기 (b) 단계는
    상기 1차 정렬이 완료되면 상기 Y개의 데이터 정렬 집합에 대한 데이터 저장 형식을 체크하는 단계; 및
    상기 체크된 데이터 저장 형식에 따라 직접 정렬(Direct Sorting) 또는 간접 정렬(Indirect Sorting)을 결정하여 특정 메모리에 저장하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 데이터 정렬 방법.
  10. 제1항에 있어서, 상기 (c) 단계는
    상기 2차 정렬이 수행되면 상기 X개의 데이터에 대한 정렬 상태를 확인하는 단계; 및
    상기 X개의 데이터에 대한 모든 정렬이 완료되지 않았으면 상기 2차 정렬을 반복하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 데이터 정렬 방법.
  11. 삭제
  12. X개의 데이터를 휘발성 메모리에서 한꺼번에 처리 가능한 N개(상기 N은 자연수) 이하의 데이터를 포함하는 Y개의 데이터 정렬 집합을 생성하는 데이터 정렬 집합 생성부;
    상기 Y 개의 데이터 정렬 집합 각각에 대하여, 변곡점을 검출하여 M개(상기 M은 자연수)의 데이터 부분집합을 생성하고, 상기 M개의 데이터 부분집합을 병합하여 1차 정렬을 수행하는 1차 정렬 수행부;
    상기 1차 정렬이 수행된 Y개의 데이터 정렬 집합을 병합하여 2차 정렬을 수행하는 2차 정렬 수행부; 및
    상기 2차 정렬이 완료되면 상기 X개의 데이터에 대한 데이터 저장 형식을 체크하고 상기 체크된 데이터 저장 형식에 따라 직접 정렬(Direct Sorting) 또는 간접 정렬(Indirect Sorting)을 결정하여 비휘발성 메모리에 저장하는 비휘발성 메모리 저장부를 포함하는 컴퓨터 실행 가능한 데이터 정렬 시스템.
  13. 삭제
  14. 컴퓨터 실행 가능한 데이터 정렬 시스템에서 수행되는 데이터 정렬을 제공하는 컴퓨터 프로그램을 기록한 컴퓨터 실행 가능한 데이터 정렬 기록매체에 있어서,
    X개의 데이터를 휘발성 메모리에서 한꺼번에 처리 가능한 N개(상기 N은 자연수) 이하의 데이터를 포함하는 Y개의 데이터 정렬 집합을 생성하는 기능;
    상기 Y 개의 데이터 정렬 집합 각각에 대하여, 변곡점을 검출하여 M개(상기 M은 자연수)의 데이터 부분집합을 생성하고, 상기 M개의 데이터 부분집합을 병합하여 1차 정렬을 수행하는 기능;
    상기 1차 정렬이 수행된 Y개의 데이터 정렬 집합을 병합하여 2차 정렬을 수행하는 기능; 및
    상기 2차 정렬이 완료되면 상기 X개의 데이터에 대한 데이터 저장 형식을 체크하고 상기 체크된 데이터 저장 형식에 따라 직접 정렬(Direct Sorting) 또는 간접 정렬(Indirect Sorting)을 결정하여 비휘발성 메모리에 저장하는 기능을 포함하는 컴퓨터 프로그램을 기록한 컴퓨터 실행 가능한 데이터 정렬 기록매체.
KR20130047652A 2013-04-29 2013-04-29 컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체 KR101482229B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20130047652A KR101482229B1 (ko) 2013-04-29 2013-04-29 컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체
PCT/KR2014/002966 WO2014178544A1 (ko) 2013-04-29 2014-04-07 컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130047652A KR101482229B1 (ko) 2013-04-29 2013-04-29 컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체

Publications (2)

Publication Number Publication Date
KR20140128770A KR20140128770A (ko) 2014-11-06
KR101482229B1 true KR101482229B1 (ko) 2015-01-14

Family

ID=51843628

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130047652A KR101482229B1 (ko) 2013-04-29 2013-04-29 컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체

Country Status (2)

Country Link
KR (1) KR101482229B1 (ko)
WO (1) WO2014178544A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10409593B2 (en) 2017-03-31 2019-09-10 Samsung Electronics Co., Ltd. Semiconductor device
US10649771B2 (en) 2017-03-31 2020-05-12 Samsung Electronics Co., Ltd. Semiconductor device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224624A (zh) * 2015-09-22 2016-01-06 广州神马移动信息科技有限公司 一种实现倒排链快速归并的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08221254A (ja) * 1995-02-16 1996-08-30 Fujitsu Ltd マージソート方法及びマージソート装置
JP2007133576A (ja) 2005-11-09 2007-05-31 Hitachi Information & Communication Engineering Ltd ソート処理方法及びプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331353A (ja) * 2000-05-22 2001-11-30 Teijin Ltd データベースへのデータ入力システム及びそのプログラムを記憶した記録媒体
KR101662769B1 (ko) * 2010-03-09 2016-10-05 삼성전자주식회사 고속 정렬 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08221254A (ja) * 1995-02-16 1996-08-30 Fujitsu Ltd マージソート方法及びマージソート装置
JP2007133576A (ja) 2005-11-09 2007-05-31 Hitachi Information & Communication Engineering Ltd ソート処理方法及びプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10409593B2 (en) 2017-03-31 2019-09-10 Samsung Electronics Co., Ltd. Semiconductor device
US10649771B2 (en) 2017-03-31 2020-05-12 Samsung Electronics Co., Ltd. Semiconductor device
US10990388B2 (en) 2017-03-31 2021-04-27 Samsung Electronics Co., Ltd. Semiconductor device
US11645072B2 (en) 2017-03-31 2023-05-09 Samsung Electronics Co., Ltd. Semiconductor device

Also Published As

Publication number Publication date
WO2014178544A1 (ko) 2014-11-06
KR20140128770A (ko) 2014-11-06

Similar Documents

Publication Publication Date Title
CN102346829B (zh) 基于集成分类的病毒检测方法
KR101840905B1 (ko) 상태 기계 격자에서의 카운터 동작
KR20140102274A (ko) 상태 기계 격자에서의 불리언 로직
JP2017517082A (ja) 並列ディシジョン・ツリー・プロセッサー・アーキテクチャ
CN106407809A (zh) 一种Linux平台恶意软件检测方法
KR101482229B1 (ko) 컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체
CN109918658A (zh) 一种从文本中获取目标词汇的方法及***
CN103440246A (zh) 用于MapReduce的中间结果数据排序方法及***
US7231626B2 (en) Method of implementing an engineering change order in an integrated circuit design by windows
Jiang et al. A feature selection method for malware detection
WO2017039684A1 (en) Classifier
CN112148359B (zh) 一种基于子块过滤的分布式代码克隆检测与搜索方法、***及介质
JP2013196680A (ja) 共学習に基づく概念認識方法および概念認識装置
CN102298681A (zh) 一种基于数据流切片的软件识别方法
JP2013149061A (ja) 文書類似性評価システム、文書類似性評価方法およびコンピュータ・プログラム
KR101749210B1 (ko) 다중 서열 정렬 기법을 이용한 악성코드 패밀리 시그니쳐 생성 장치 및 방법
KR20180133726A (ko) 특징 벡터를 이용하여 데이터를 분류하는 장치 및 방법
JP6416588B2 (ja) ソースコード検証システム
Hayfron-Acquah et al. Improved selection sort algorithm
CN102103539A (zh) 基于z规格的测试用例生成方法
CN103186672B (zh) 文件排序方法及其装置
JP2013077124A (ja) ソフトウェアテストケース生成装置
KR101524375B1 (ko) 맞춤 접두 필터링을 이용한 유사도 조인 방법
CN107766486A (zh) 随机抽取样本数据的方法、装置、可读介质及存储控制器
KR102255600B1 (ko) Gan을 이용한 문서형 악성코드 탐지 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191106

Year of fee payment: 6