I’m writing this for someone special. Hope this would help. This is at the same time a review of my past lessons. Assuming i,j and tmp are defined as integers, num[] as an array of integers, and SIZE as a constant.
for (i = 0; i < SIZE - 1; ++i)
for (j = SIZE - 1; j < i; --j)
if (num[j-1] > num[j]) {
tmp = num[j-1];
num[j-1] = num[j];
num[j] = tmp;
}
Here is another way of doing it. This is a demo on how the function works on a particular array of integers. a[] is the array of integers while n is the size of the array.
void swap(int *, int *);
void bubble(int a[], int n)
{
int i, j;
for (i = 0; i < n - 1; ++i)
for (j = n - 1; j > i; --j)
if (a[j-1] > a[j])
swap(&a[j-1], &a[j]);
}
void swap(int *p, int *q)
{
int tmp;
tmp = *p;
*p = *q;
*q = tmp;
}
If you are keen enough to observe, check that we can use the swap arguments presented below.
swap(a + i, a + j);
Getting the idea? Pointer arithmetic! God bless and good day.
No comments:
Post a Comment