Skip to content

Instantly share code, notes, and snippets.

@yoman07
Created February 15, 2014 16:08
Show Gist options
  • Save yoman07/9021374 to your computer and use it in GitHub Desktop.
Save yoman07/9021374 to your computer and use it in GitHub Desktop.
Objective C Quick Sort
- (NSArray*) quickSortArray:(NSArray*) arr {
if(arr.count <2) {
return arr;
}
NSMutableArray *mutableArr = [arr mutableCopy];
NSMutableArray *leftArray = [[NSMutableArray alloc] init];
NSMutableArray *rightArray = [[NSMutableArray alloc] init];
NSUInteger pivot = arr.count/2;
NSNumber *pivotValue = [mutableArr objectAtIndex:pivot];
[mutableArr removeObjectAtIndex:pivot];
for(int i=0;i<mutableArr.count;i++) {
NSNumber *val = [mutableArr objectAtIndex:i];
if([val floatValue] < [pivotValue floatValue] ) {
[leftArray addObject:val];
} else {
[rightArray addObject:val];
}
}
leftArray = [[self quickSortArray:leftArray] mutableCopy];
rightArray = [[self quickSortArray:rightArray ] mutableCopy];
[leftArray addObject:pivotValue];
[leftArray addObjectsFromArray:rightArray];
return leftArray;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment