알고리즘은 정말 좋은 과목이다. 교수님도 좋고 과제도 몇 개 없고 이걸 찾아온 걸 봐서 당신 실력도 없다.
#include <iostream>
#include <vector>
using namespace std;
vector<int> BubbleSort(int len, vector<int> Arr);
vector<int> QuickSort(int len, vector<int> Arr);
vector<int> mixedsort(int len, vector<int> Arr);
int main()
{
int n;
cin >> n;
vector<int> input;
for (int i = 0; i < n; i++)
{
int tmp;
cin >> tmp;
input.push_back(tmp);
}
vector<int> ans = mixedsort(n, input);
for (int i = 0; i < n; i++)
{
cout << ans[i] << " ";
}
return 0;
}
vector<int> mixedsort(int len,vector<int> Arr)
{
if (len > 10)
{
return QuickSort(len, Arr);
}
else
{
return BubbleSort(len, Arr);
}
}
vector<int> QuickSort(int len,vector<int> Arr)
{
vector<int> pivot;
pivot.push_back(Arr[0]);
vector<int> left;
vector<int> right;
vector<int> ans;
for (int i = 1; i < len; i++)
{
int x = Arr[i];
if (x < pivot[0])
{
left.push_back(x);
}
else
{
right.push_back(x);
}
}
vector<int> Left = mixedsort(left.size(), left);
vector<int> Right = mixedsort(right.size(), right);
ans.insert(ans.end(), Left.begin(), Left.end());
ans.insert(ans.end(), pivot.begin(), pivot.end());
ans.insert(ans.end(), Right.begin(), Right.end());
return ans;
}
vector<int> BubbleSort(int len, vector<int> Arr)
{
for (int i = len-1; i > 0; i--)
{
for (int j = 0; j < i; j++)
{
if (Arr[j] > Arr[j + 1])
{
int tmp;
tmp = Arr[j];
Arr[j] = Arr[j + 1];
Arr[j + 1] = tmp;
}
}
}
return Arr;
}
공부 좀 해라.
'vidigummy KAU > 2020년2학기알고리즘' 카테고리의 다른 글
알고리즘 과제 4 (0) | 2021.01.03 |
---|---|
알고리즘 과제 3 (0) | 2021.01.03 |
알고리즘 과제 2 (0) | 2021.01.03 |