Following is Objective-C method implementation I did for one of the most simplest sorting algorithms, **Bubble Sort** to sort an array of integers.

**Note:-** I have defined it as a static method in the **SimpleAlgorithms** class.

    /**
     * When given jumbled or discending ordered array of integers, following bubble sort method will give you 
     * an array ordered in ascending order.
     */
    + (NSArray *) bubbleSort:(NSArray *) arrayToBeSorted {
        // As we can't swap integers in a static array, make a mutable array out of the given static array.
        NSMutableArray *muArrRaw = [[NSMutableArray alloc] initWithArray:arrayToBeSorted];
        
        // iterate through the array as rounds
        for (int i = 0; i < [muArrRaw count]; i++) {
            // iterate through each element of the array with the given range
            for (int j = 0; j < [muArrRaw count] - i; j++) {
                // comparison
                if (j < ([muArrRaw count] - 1) && [[muArrRaw objectAtIndex:j] intValue] > [[muArrRaw objectAtIndex:(j + 1)] intValue]) {
                    int temp = [[muArrRaw objectAtIndex:j] intValue];   // taken the value to be swapped first
                    
                    // then do the swapping
                    [muArrRaw replaceObjectAtIndex:j withObject:[muArrRaw objectAtIndex:(j + 1)]];
                    [muArrRaw replaceObjectAtIndex:(j + 1) withObject:[NSNumber numberWithInt:temp]];
                }
            }
        }
        
        // return the sorted array
        return [muArrRaw mutableCopy];
    }

I call this method as follows:

    NSArray *array = [[NSArray alloc] initWithObjects:[NSNumber numberWithInt:5], [NSNumber numberWithInt:3], [NSNumber numberWithInt:4], [NSNumber numberWithInt:1], [NSNumber numberWithInt:2], nil];
    NSArray *sortedArray = [SimpleAlgorithms bubbleSort:array];

I know this seems to be silly for asking for improvements for something like this. But I like to find out even smallest improvements that we can made to this kind of things also because sometimes I might have done something stupid in the above implementation also. **That's where we can embed power and value to the implementation**.

So please give your suggestions and improvements to this Algorithm implementation.

I would be grateful if you can point out the improvements in the following areas:

 - Objective-C Language oriented improvements, reasoning and suggestions
 - Algorithm implementation techniques, simplifiable code lines.