从小到大(升序)为例
从前冒到后
void pop_sort(int a[], int n)
{
for (int i = n - 1; i > 0; --i)
for (int j = 0; j < i; ++j)
{
if (a[j] > a[j + 1])
swap(a[j], a[j + 1]);
}
}
变种
void pop_sort(int a[], int n)
{
for (int i = 1; i < n; ++i)
for (int j = 0; j < n - i; ++j)
{
if (a[j] > a[j + 1])
swap(a[j], a[j + 1]);
}
}
从后冒到前
void pop_sort(int a[], int n)
{
for (int i = 0; i < n; ++i)
for (int j = n - 1; j > i; --j)
{
if (a[j - 1] > a[j])
swap(a[j - 1], a[j]);
}
}