void swap(int *xp, int *yp)
{
int temp = *xp;
*xp = *yp;
*yp = temp;
}
// A function to implement bubble sort
void bubbleSort(int arr[], int n)
{
int i, j;
for (i = 0; i < n-1; i++)
// Last i elements are already in place
for (j = 0; j < n-i-1; j++)
if (arr[j] > arr[j+1])
swap(&arr[j], &arr[j+1]);
}
void BubbleSort (int a[], int length)
{
int i, j, temp;
for (i = 0; i < length; i++)
{
for (j = 0; j < length - 1; j++)
{
if (a[j + 1] < a[j])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
Dwie implementacje tego samego sortowania. Może mi ktoś napisać jakie są różnice między nimi? To znaczy.. Wiem, że w pierwszym działamy na wskaźnikach i używamy dodatkowej funkcji swap(); natomiast w drugim używamy operatora przypisania.
Drugi kod jest krótszy ale który jest bardziej wydajny? Mój tok rozumowania jest następujący: -> działając na wskaźnikach nie tworzymy dodatkowych zmiennych jak w przypadku drugiej implementacji bubble sorta przez co kod będzie wydajniejszy. Jest jeszcze jakiś powód dla którego nie powinienem korzystać z drugiej implementacji sortowania? dzięki, rozjaśni mi to wiele :)