Logic Building: Merge two list and sort them without using inbuilt method

Sort List in Ascending Order

We have two unsorted list, now we want to merge them together into one list and sort them.

l1 = 4,9,3
l2 = 2,7,5

Solution

List<Integer> l1= new List<integer>{4,9,3};
List<Integer> l2= new List<integer>{2,7,5}
List<Integer> l3= new List<integer>();
integer temp =0;
//add list l1 elements in list l3
    for(integer i=0; i<l1.size();i++){
        l3.add(l1);
    }
//add list l2 elements in list l3
for(integer i=0; i<l1.size();i++){
        l3.add(l2);
    }
//iterate over first element of l3
for(integer i=0; i<l3.size();i++)
{
//iterate over next element of l3
    for(integer j=i+1; j<l3.size();j++){
       //if first element is greater than the next element then swap the positions of values
        if(l3[i]>l3[j])
        {
       //for swapping the values store first element in temp variable
          temp = l3[i];
       //now swap the element 
          l3[i]=l3[j];
      //as temp is having first element then put it in next place
          l3[j]=temp;
        }
    }    
}
system.debug('l3 '+l3);

Output
l3 = 4,9,3,2,7,5

Sort List in Descending Order

List<Integer> l3= new List<integer>{4,9,3,2,7,5};
integer temp =0;
for(integer i=0; i<l3.size();i++)
{
    for(integer j=i+1; j<l3.size();j++){
        if(l3[i]<l3[j])
        {
          temp = l3[i];
          l3[i]=l3[j];
          l3[j]=temp;
        }
    }    
}
system.debug('l3 '+l3);

Output
l3 = 9, 7, 5, 4, 3, 2

Did you enjoy this article?
Signup today and receive free updates straight in your inbox.
I agree to have my personal information transfered to MailChimp ( more information )
50% LikesVS
50% Dislikes