时间复杂度:n^2
NSArray* numArray =@[@(4),@(8),@(6),@(1),@(5),@(18),@(13),@(25),@(7)];
NSArray
* result = [self
insertionSort:numArray];
#pragma mark -
插入排序
/**
* 插入排序算法
*
* @param dataArray 待排序数据数组
*
* @return 已排序数据数组
*/
- (NSArray *)insertionSort:(NSArray *)dataArray
{
NSMutableArray * resultArray = [NSMutableArray arrayWithArray:dataArray];
for (int i = 1; i < resultArray.count; i ++) {
//待排序的数据
NSNumber * tempNum = resultArray[i];
//待排序数据往前依次比较,如果小于前面的数据,则交换顺序。直到比完或者发现大于前面的数据。
int j = i - 1;
while ([resultArray[j] integerValue] > tempNum.integerValue) {
resultArray[j + 1] = resultArray[j];
j = j - 1;
resultArray[j + 1] = tempNum;
if (j < 0) {
break;
}
}
}
return resultArray;
* 插入排序算法
*
* @param dataArray 待排序数据数组
*
* @return 已排序数据数组
*/
- (NSArray *)insertionSort:(NSArray *)dataArray
{
NSMutableArray * resultArray = [NSMutableArray arrayWithArray:dataArray];
for (int i = 1; i < resultArray.count; i ++) {
//待排序的数据
NSNumber * tempNum = resultArray[i];
//待排序数据往前依次比较,如果小于前面的数据,则交换顺序。直到比完或者发现大于前面的数据。
int j = i - 1;
while ([resultArray[j] integerValue] > tempNum.integerValue) {
resultArray[j + 1] = resultArray[j];
j = j - 1;
resultArray[j + 1] = tempNum;
if (j < 0) {
break;
}
}
}
return resultArray;
}
1474

被折叠的 条评论
为什么被折叠?



