给一个无序数组排序
NSMutableArray *numList = [NSMutableArray arrayWithArray:@[@"3",@"22",@"1",@"8",@"55",@"2",@"33",@"9",@"12"]];
冒泡排序
for (int index = 0; index < numList.count-1; index++) {
BOOL bSort = NO;
for (int jndex = 0; jndex < numList.count-1-index; jndex++) {
int iLeft = [numList[jndex] intValue];
int iRight = [numList[jndex+1] intValue];
if (iLeft > iRight) {
[numList exchangeObjectAtIndex:jndex withObjectAtIndex:jndex+1];
bSort = YES;
}
}
if (!bSort) {
break;
}
}
选择排序
for (int index = 0; index < numList.count; index++) {
int minIndex = index;
for (int jndex = index+1; jndex < numList.count; jndex++) {
int minValue = [numList[minIndex] intValue];
int jvalue = [numList[jndex] intValue];
if (jvalue < minValue) {
minIndex = jndex;
}
}
[numList exchangeObjectAtIndex:index withObjectAtIndex:minIndex];
}
快速排序
+ (void)quickSort:(NSMutableArray *)list low:(int)iLow hith:(int)iHigh {
if (iLow >= iHigh) {
return;
}
int index = iLow;
int jndex = iHigh;
id key = list[index];
while (index < jndex) {
while (index < jndex && [list[jndex] intValue] >= [key intValue]) {
jndex--;
}
if (index == jndex) {
break;
}
list[index++] = list[jndex];
while (index < jndex && [list[index] intValue] <= [key intValue]) {
index++;
}
list[jndex--] = list[index];
}
list[index] = key;
[self quickSort:list low:iLow hith:index-1];
[self quickSort:list low:index+1 hith:iHigh];
}
插入排序
for (int index = 0; index < numList.count-1; index++) {
int iLeft = [numList[index] intValue];
int iRight = [numList[index+1] intValue];
if (iRight < iLeft) {
int iTemp = iRight;
for (int jndex = index+1; jndex > 0 && [numList[jndex-1] intValue] > iTemp; jndex--) {
[numList exchangeObjectAtIndex:jndex-1 withObjectAtIndex:jndex];
}
}
}