CPP09
1.0
読み取り中…
検索中…
一致する文字列を見つけられません
PmergeMe.hpp
[詳解]
1
/* ************************************************************************** */
2
/* */
3
/* ::: :::::::: */
4
/* PmergeMe.hpp :+: :+: :+: */
5
/* +:+ +:+ +:+ */
6
/* By: kamitsui <kamitsui@student.42tokyo.jp> +#+ +:+ +#+ */
7
/* +#+#+#+#+#+ +#+ */
8
/* Created: 2025/08/28 17:52:23 by kamitsui #+# #+# */
9
/* Updated: 2025/08/28 18:00:13 by kamitsui ### ########.fr */
10
/* */
11
/* ************************************************************************** */
12
18
#ifndef PMERGEME_HPP
19
#define PMERGEME_HPP
20
21
#include <
algorithm
>
// for std::lower_bound
22
#include <
deque
>
23
#include <
iostream
>
24
#include <
stdexcept
>
25
#include <
string
>
26
#include <sys/time.h>
// for gettimeofday
27
#include <
vector
>
28
38
class
PmergeMe
{
39
private
:
40
// Orthodox Canonical Form: コピーを禁止するためにprivateで宣言
41
PmergeMe
(
const
PmergeMe
&src);
42
PmergeMe
&operator=(
const
PmergeMe
&rhs);
43
44
// --- Private Helper Methods ---
45
50
long
getTimeStamp();
// マイクロ秒単位のタイムスタンプを取得
51
52
public
:
56
PmergeMe
();
57
61
~PmergeMe
();
62
69
void
sortAndCompare
(
int
argc,
char
**argv);
70
75
void
mergeInsertSort
(
std::vector<int>
&arr);
76
// void insertionSort(std::vector<int> &arr, int start, int end);
77
82
void
mergeInsertSort
(
std::deque<int>
&arr);
83
// void insertionSort(std::deque<int> &arr, int start, int end);
84
};
85
86
#endif
// PMERGEME_HPP
87
//
88
// ************************* カウントバージョン *******************************************
89
//
90
// #ifndef PMERGEME_HPP
91
// #define PMERGEME_HPP
92
//
93
// #include <deque>
94
// #include <iostream>
95
// #include <stdexcept>
96
// #include <string>
97
// #include <sys/time.h>
98
// #include <vector>
99
//
100
// class PmergeMe {
101
// private:
102
// // 比較回数を記録するためのカウンター
103
// long _comparisonCount;
104
//
105
// PmergeMe(const PmergeMe &src);
106
// PmergeMe &operator=(const PmergeMe &rhs);
107
//
108
// // --- Private Helper Methods ---
109
// // void mergeInsertSort(std::vector<int> &arr);
110
// // void mergeInsertSort(std::deque<int> &arr);
111
// long getTimeStamp();
112
//
113
// // std::lower_boundの代替となる、比較回数を数える二分探索
114
// std::vector<int>::iterator counting_lower_bound(std::vector<int> &vec, int value);
115
// std::deque<int>::iterator counting_lower_bound(std::deque<int> &deq, int value);
116
//
117
// public:
118
// PmergeMe();
119
// ~PmergeMe();
120
//
121
// void sortAndCompare(int argc, char **argv);
122
//
123
// void mergeInsertSort(std::vector<int> &arr);
124
// void mergeInsertSort(std::deque<int> &arr);
125
//
126
// // 比較回数をリセットし、取得するためのメソッド
127
// void resetCounter();
128
// long getComparisonCount() const;
129
//};
130
//
131
// #endif // PMERGEME_HPP
algorithm
PmergeMe
マージ挿入ソート(フォード・ジョンソンアルゴリズム)を用いて数値シーケンスをソートするクラス。
Definition
PmergeMe.hpp:38
PmergeMe::sortAndCompare
void sortAndCompare(int argc, char **argv)
コマンドライン引数をパースし、ソートを実行して結果を比較・表示します。
Definition
PmergeMe.cpp:190
PmergeMe::mergeInsertSort
void mergeInsertSort(std::vector< int > &arr)
std::vectorに対してマージ挿入ソートを実行します。
Definition
PmergeMe.cpp:58
PmergeMe::PmergeMe
PmergeMe()
デフォルトコンストラクタ。
Definition
PmergeMe.cpp:37
PmergeMe::~PmergeMe
~PmergeMe()
デストラクタ。
Definition
PmergeMe.cpp:39
deque
iostream
stdexcept
string
vector
ex02
PmergeMe.hpp
構築:
1.9.8