void BubbleSort(int* a, int n)
{
int i, j;
for (i = 1; i < n; i++)
{
for (j = 0; j < n - i; j++)
{
if (*(a + j) > *(a + j + 1))
{
int tmp = *(a + j);
*(a + j) = *(a + j + 1);
*(a + j + 1) = tmp;
}
}
}
}
void BubbleSortEx(int *a, int n)
{
int left = 0;
int right = n - 1;
while (left<right)
{
for (int i = left; i < right; i++)
{
if (a[i] > a[i + 1])
{
int tmp = a[i];
a[i] = a[i + 1];
a[i + 1] = tmp;
}
}
right--;
for (int i = right; i > left; i--)
{
if (a[i] < a[i - 1])
{
int tmp = a[i];
a[i] = a[i - 1];
a[i - 1] = tmp;
}
}
left++;
}
}