个人链接
- 博客园主页 : 博客园主页
- GitHub : 我的GitHub
- iOS程序猿(媛)~~ : 这是我个人整理的一个技术专题, 这里的文章都是比较有技术含量(不断更新)!
- 微信公众号 :
1.递归计算1到n正整数之和
#pragma mark 递归计算1到n正整数之和
- (int)addSum:(int)n{
if (n>0) {
return n+[self addSum:n-1];
}
return 0;
}
2.快速排序,从小到大的顺序
- (void)quickSortArray:(NSMutableArray *)array withLeftIndex:(NSInteger)leftIndex andRightIndex:(NSInteger)rightIndex
{
if (leftIndex >= rightIndex) {//如果数组长度为0或1时返回
NSLog(@"%@",array);
return ;
}
NSInteger i = leftIndex;
NSInteger j = rightIndex;
//记录比较基准数
NSInteger key = [array[i] integerValue];
while (i < j) {
/**** 首先从右边j开始查找比基准数小的值 ***/
while (i < j && [array[j] integerValue] >= key) {//如果比基准数大,继续查找
j--;
}
//如果比基准数小,则将查找到的小值调换到i的位置
array[i] = array[j];
/**** 当在右边查找到一个比基准数小的值时,就从i开始往后找比基准数大的值 ***/
while (i < j && [array[i] integerValue] <= key) {//如果比基准数小,继续查找
i++;
}
//如果比基准数大,则将查找到的大值调换到j的位置
array[j] = array[i];
}
//将基准数放到正确位置
array[i] = @(key);
/**** 递归排序 ***/
//排序基准数左边的
[self quickSortArray:array withLeftIndex:leftIndex andRightIndex:i - 1];
//排序基准数右边的
[self quickSortArray:array withLeftIndex:i + 1 andRightIndex:rightIndex];
}
3.方法调用
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"%d",[self addSum:10]);
NSMutableArray * arr = [[NSMutableArray alloc]initWithArray:@[@"11",@"12",@"5",@"2",@"22",@"9",@"7"]];
[self quickSortArray:arr withLeftIndex:0 andRightIndex:arr.count-1];
}
如有雷同纯属巧合,如有错误望指正。
网友评论