Skip to main content

Bubble sort in C

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.

Comments

Popular posts from this blog

Architecture Complexity

Here are the items to consider: Coding to an interface Service Oriented Architecture Automated Testing Domain Driven Design Custom Data Access Layer Layered architecture Complexity is relatively equal the number of lines of code. Note that complexity is not bad. It must be justified.

Android Studio:Unknown Host Error

After installing Android Studio, I got the following error: Unknown host 'services.gradle.org'. Please ensure the host name is correct. If you are behind an HTTP proxy, please configure the proxy settings either in Android Studio or Gradle. Consult IDE log for more details (Help | Show Log) Solution File --> Settings --> HTTP Proxy --> Auto-detect proxy settings