以下の並べ替えはどのような種類の並べ替えで、実行時間はビッグ O 表記でどのくらいなのか気になりました。私の友人は、アルゴリズムの知識をまったく持たずにこのソート関数を作成しましたが、現在、その速度/メモリ効率について議論しています。よろしければ、分析にご協力ください。
void sort(int* a, int size)
{
if (size <= 1) return;
else if (size == 2)
{
if (a[0] > a[1])
swap (a[0], a[1]);
return;
}
else
{
int i = size / 2;
sort(a, i);
sort(a+i, size - i);
int j = 0, k = i ;
while (k < size && j < k)
{
if (a[j] > a[k])
{
int temp = k;
while (temp > j)
{
swap(a[temp - 1], a[temp]);
temp--;
}
k++;
}
j++;
}
}
}
ありがとうございました :)