web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :

Bubble sort in C/AL

Nareshwar Raju Vaneshwar Profile Picture Nareshwar Raju Vane... 5,596

Sorting.. Yes, I could have used Record.SETCURRENTKEY() if I am retrieving values from a table. But I had to sort some decimal/integer variables which I used while running a report.
I was thinking what if I use one of the old school sorting algorithms, and then I decided to implement Bubble Sort in C/AL. You may argue that the complexity of a Bubble Sort is meh.. but personally, I like this algorithm because it is quite easy to implement.


LOCAL BubbleSort()

//Init integer array
rankArray[1] := 25;
rankArray[2] := 24;
rankArray[3] := 30;
rankArray[4] := 28;
rankArray[5] := 39;
rankArray[6] := 27;
rankArray[7] := 22;
rankArray[8] := 25;
rankArray[9] := 34;
rankArray[10] := 35;

numLength := ARRAYLEN(rankArray);
flag := TRUE;

MESSAGE('Before Sorting: ' + FORMAT(rankArray[1]) + ',' + FORMAT(rankArray[2]) + ','          + FORMAT(rankArray[3]) + ',' + FORMAT(rankArray[4]) + ',' + FORMAT(rankArray[5]) + ',' + FORMAT(rankArray[6]) + ',' + FORMAT(rankArray[7]) + ',' + FORMAT(rankArray[8]) + ',' + FORMAT(rankArray[9]) + ',' + FORMAT(rankArray[10]));

//Bubble Sort Start
FOR i := 1 TO numLength - 1 DO
BEGIN
   flag := FALSE;
   FOR j := 1 TO numLength - 1 DO
   BEGIN
      IF rankArray[j] > rankArray[j + 1] THEN
      BEGIN
         temp := rankArray[j + 1];
         rankArray[j + 1] := rankArray[j];
         rankArray[j] := temp;
         flag := TRUE;
      END;
   END;
END;
//Bubble Sort End

MESSAGE('After Sorting: ' + FORMAT(rankArray[1]) + ',' + FORMAT(rankArray[2]) + ',' + FORMAT(rankArray[3]) + ',' + FORMAT(rankArray[4]) + ',' + FORMAT(rankArray[5]) + ',' + FORMAT(rankArray[6]) + ',' + FORMAT(rankArray[7]) + ',' + FORMAT(rankArray[8]) + ',' + FORMAT(rankArray[9]) + ',' + FORMAT(rankArray[10]));

rankArray’s dimension is 10.

Here are the results.

1

Before Sorting: 25,24,30,28,39,27,22,25,34,35

2

After Sorting: 22,24,25,25,27,28,30,34,35,39


Fun fact:

Here is the visualization of how the Bubble Sort Algorithm works.



This was originally posted here.

Comments

*This post is locked for comments