1122 vector<int> vec1(n);
1123 vector<int> vec2(n);
1124 for(
int i = 0; i < n; i++) {
1127 for(
int i = 0; i < n; i++) {
1131 for(; i >= 0 && vec1[i] == vec2[i]; --i) {}
1132 vector<int> sorted_vec = vec1;
1133 sort(sorted_vec.begin(), sorted_vec.begin() + i + 1);
1134 bool insertion =
true;
1135 for(
int j = 0; j <= i; j++) {
1136 if(sorted_vec[j] != vec2[j]) {
1143 cout <<
"Insertion Sort" << endl;
1145 for(; j >= 0; --j) {
1146 vector vec1_cpy = vec1;
1147 sort(vec1_cpy.begin(), vec1_cpy.begin() + j);
1148 if(vec1_cpy == vec2) {
1152 sort(vec1.begin(), vec1.begin() + j + 1);
1153 for(
int k = 0; k < n; k++) {
1162 cout <<
"Merge Sort" << endl;
1168 for(; (j + 1) * factor <= n; j++) {
1169 sort(vec1.begin() + j * factor, vec1.begin() + (j + 1) * factor);
1171 if(j * factor < n) {
1172 sort(vec1.begin() + j * factor, vec1.end());
1175 for(
int k = 0; k < n; k++) {