bubble_sort
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
void bubble_sort1(int* a, unsigned int n)
{
if (n < 2)
return;
int f = 0;
for (int i = n - 1; i > 0; i--)
{
f = 0;
for (int j = 0; j < i; j++)
{
if (a[j] > a[j + 1])
{
a[j] = a[j] ^ a[j + 1];
a[j + 1] = a[j] ^ a[j + 1];
a[j] = a[j] ^ a[j + 1];
f++;
}
}
if (!f)
return;
}
}
void bubble_sort2(int* a, unsigned int n) {
if (n < 2)
return;
int f = 0;
for (int j = 0; j < n-1; j++) {
if (a[j] > a[j + 1]) {
a[j] = a[j + 1] + a[j];
a[j + 1] = a[j] - a[j + 1];
a[j] = a[j] - a[j + 1];
f = 1;
}
}
if (f == 0)
return;
else
bubble_sort2(a, --n);
return ;
}
int main() {
int a[] = { 44,3,38,5,47,15,36,26,27,2,46,4,19,50,48 };
bubble_sort1(a,sizeof(a)/sizeof(a[0]));
for (const auto& e : a)
cout << e << " ";
cout << endl;
return 0;
}