C++:SelectionSort
선택 정렬 C++ 샘플 예제.
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdlib>
using namespace std;
typename vector<int>::iterator
findMin(typename vector<int>::iterator & begin, typename vector<int>::iterator & end)
{
if (begin == end) {
return begin;
}
vector<int>::iterator result = begin;
for (vector<int>::iterator itr = begin + 1; itr != end; ++itr) {
if (*itr < *result) {
result = itr;
}
}
return result;
}
int main(int argc, char ** argv)
{
vector<int> list;
if (argc >= 2) {
for (int index = 1; index < argc; ++index) {
list.push_back(atoi(argv[index]));
}
} else {
cout << "[ERROR] Empty number.\n";
return 1;
}
vector<int>::iterator end = list.end();
cout << "List: ";
for (vector<int>::iterator itr = list.begin(); itr != end; ++itr) {
cout << *itr << ' ';
}
cout << endl;
int minimum = 0;
for (vector<int>::iterator itr = list.begin(); itr != end; ++itr) {
cout << "Cursor: " << *itr;
vector<int>::iterator pivot = findMin(itr, end);
cout << ", Pivot: " << *pivot << endl;
std::swap(*itr, *pivot);
}
cout << "Sort: ";
for (vector<int>::iterator itr = list.begin(); itr != end; ++itr) {
cout << *itr << ' ';
}
cout << endl;
return 0;
}