Makefile
g++ -std=c++11 -o sort sort.cpp
代码
sort.cpp
#include <vector>
#include <climits>
#include <cassert>
#include <algorithm>
#include <array>
#include <stack>
冒泡排序 冒 泡 排 序
void bubbleSort(std::vector<int> &v)
{
std::size_t vsize = v.size();
assert(vsize <= INT_MAX);
int size = static_cast<int>(vsize);
bool hasSwap = true;
for (int i = 0; (i < size-1) && hasSwap; ++i)
{
for (int j = size-1; j > i; --j)
{
if (v[j] < v[j-1])
{
std::swap(v[j], v[j-1]);
hasSwap = true;
}
}
}
}
选择排序 选 择 排 序
void selectSort(std::vector<int> &v)
{
std::size_t vsize = v.size();
assert(vsize <= INT_MAX);
int size = static_cast<int>(vsize);
for (int i = 0; i < size-1; ++i)
{
int min = i;
for (int j = i+1; j < size; ++j)
{
if (v[min] > v[j])
{
min = j;
}
}
if (min != i)
{
std::swap(v[min], v[i]);
}
}
}