[資料구조] 정렬알고리즘 비교 분석
페이지 정보
작성일 23-01-24 01:48
본문
Download : [자료구조] 정렬알고리즘 비교 분석.hwp
public:
private:
int key;
원칙으로 하며 보고서에 차이점을 기술할 것. 특히, Quick Sort인 경우 어떻게 pivot을
void checktime(ArrayVector *e) 함수에서도 마찬가지로 data타입의 포인터변수e를 매개변수로 받아서 이를 사용합니다.
5.1.3절의 Extendable ArrayVector를 구현하고 반드시 이를 바탕으로 아래 정렬 알고리즘들을 구현할 것. 강의노트에 제시된 알고리즘을 변경하여 작성하는 것을 원칙으로 하며 보고서에 차이점을 기술할 것. 특히, Quick Sort인 경우 어떻게 pivot을 선정했는지 기술할 것.
template
char element;
};
전체 코드는 맨 마지막에 추가하기로 하겠습니다. 이는 데이터의 개수(크기)가 커지면 이를 처리할 공간(스택)이 부족하게 되어 스택 오버플로우가 발생하게 됩니다. class data에는 int key, char elem을 선언하여 key값과 문자를 저장할 수 있도록 하여 구현하였습니다.
data(){};
선정했는지 기술할 것.
Step 1. 5.1.3절의 Extendable ArrayVector를 구현하고 반드시 이를 바탕으로 아래 정렬
선정했는지 기술할 것.
순서
data(int k, char elem){
DS1= new ArrayVector[DATASETNUM];
정렬알고리즘,알고리즘
Download : [자료구조] 정렬알고리즘 비교 분석.hwp( 75 )
[資料구조] 정렬알고리즘 비교 분석
레포트 > 공학,기술계열
} //이제 e와 bubble는 각각 별개
알고리즘들을 구현할 것. 강의노트에 제시된 알고리즘을 변경하여 작성하는 것을
.....
설명
에서 Object를
5.1.3절의 Extendable ArrayVector를 구현하고 반드시 이를 바탕으로 아래 정렬
다. class data{
.....
알고리즘들을 구현할 것. 강의노트에 제시된 알고리즘을 변경하여 작성하는 것을
원칙으로 하며 보고서에 차이점을 기술할 것. 특히, Quick Sort인 경우 어떻게 pivot을
ArrayVector *insert;
....
ArrayVector *bubble;
① Bubble sort
delete []bubble;
![[자료구조] 정렬알고리즘 비교 분석-7655_01.gif](https://sales.happyreport.co.kr/prev/201204/%5B%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%5D%20%EC%A0%95%EB%A0%AC%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%20%EB%B9%84%EA%B5%90%20%EB%B6%84%EC%84%9D-7655_01.gif)
![[자료구조] 정렬알고리즘 비교 분석-7655_02_.gif](https://sales.happyreport.co.kr/prev/201204/%5B%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%5D%20%EC%A0%95%EB%A0%AC%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%20%EB%B9%84%EA%B5%90%20%EB%B6%84%EC%84%9D-7655_02_.gif)
![[자료구조] 정렬알고리즘 비교 분석-7655_03_.gif](https://sales.happyreport.co.kr/prev/201204/%5B%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%5D%20%EC%A0%95%EB%A0%AC%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%20%EB%B9%84%EA%B5%90%20%EB%B6%84%EC%84%9D-7655_03_.gif)
![[자료구조] 정렬알고리즘 비교 분석-7655_04_.gif](https://sales.happyreport.co.kr/prev/201204/%5B%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%5D%20%EC%A0%95%EB%A0%AC%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%20%EB%B9%84%EA%B5%90%20%EB%B6%84%EC%84%9D-7655_04_.gif)
![[자료구조] 정렬알고리즘 비교 분석-7655_05_.gif](https://sales.happyreport.co.kr/prev/201204/%5B%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%5D%20%EC%A0%95%EB%A0%AC%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%20%EB%B9%84%EA%B5%90%20%EB%B6%84%EC%84%9D-7655_05_.gif)
각각의 sort를 구현하는데 있어서 강의노트와 여러 들을 참고하였습니다. 저는 반대로
for (i=0; isize(); i++){
bubble->insertAtRank(i, e->elemAtRank(i));
위와같이 클래스 data를 선언하여 Object에 data를 사용하였습니다.
bubble = new ArrayVector[e->size()];
먼저 메인에서 아래와같이 data타입 ArrayVector를 포인터로 선언하고 동적할당을 하였습니다.
element = elem;
ArrayVector *select;
ArrayVector *merge;
ArrayVector *quick ;
class ArrayVector{
...
Bubblesort(bubble);
각각의 배열에 e의 값을 넣어주어야 하는데 대입연산자 오버로딩을 하지 못해 아래와 같이 풀어썻습니다.
ArrayVector *DS1, *DS2, *DS3;
key = k;
강의노트에는 ascending 으로 data를 정렬하게 됩니다.
#define DATASETNUM 100000를 선언하여 이 값만 바꿔주면 생성되는 데이터의 개수를 조절할 수 있도록 하였습니다. 이 함수에서 아래의 변수들을 선언하였는데 이는 하나의 데이터로부터 여러개의 변수에 동일한 data을 넣어주기 위해서입니다. 이를 방지하기위해 동적할당을 하여 힙에 데이터를 저장하도록 하였습니다.