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
38class 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
76 // void insertionSort(std::vector<int> &arr, int start, int end);
77
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
マージ挿入ソート(フォード・ジョンソンアルゴリズム)を用いて数値シーケンスをソートするクラス。
Definition PmergeMe.hpp:38
void sortAndCompare(int argc, char **argv)
コマンドライン引数をパースし、ソートを実行して結果を比較・表示します。
Definition PmergeMe.cpp:190
void mergeInsertSort(std::vector< int > &arr)
std::vectorに対してマージ挿入ソートを実行します。
Definition PmergeMe.cpp:58
PmergeMe()
デフォルトコンストラクタ。
Definition PmergeMe.cpp:37
~PmergeMe()
デストラクタ。
Definition PmergeMe.cpp:39