//buble sort 1
template<typename T>
void bublesort_1(T arr[], int len)
{
for (int i = 0; i<len - 1; i++)
{
for (int j = len - 1; j>i; j--)
{
if (arr[j - 1]>arr[j])
swap(arr[j - 1], arr[j]);
}
}
}
//buble sort 2
template<typename T>
void bublesort_2(T arr[], int len)
{
for (int i = 0, flag = 1; i<len - 1 && flag; i++)
{
flag = 0;
for (int j = len - 1; j>i; j--)
{
if (arr[j - 1]>arr[j])
swap(arr[j - 1], arr[j]);
flag = 1;
}
}
}