算法-选择排序

选择排序(Selection sort)是一种常见的排序算法,算法实现的逻辑每一次从待排序的数组中选出最小(或最大)的一个元素,存放在序列的第一个位置,然后生鲜的元素中选择第二小(或者第二大)的元素放在第二个位置,以此类推,将整个数组排序成功。对于一个长度为N的数组,选择排序大概需要N^2/2的比较和N次交换,运行的时间和输入无关,一个有序的数组和一个无序的数组最终运行的时间是一样的,数据移动的次数是最少的,交换数组的次数和数组的大小呈线性关系。

关键代码实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-(NSMutableArray *)selectorSort:(NSMutableArray *)arr{
    for (NSInteger i=0; i<[arr count]; i++) {
       NSInteger min=i;
        for (NSInteger j=i+1; j<[arr count]; j++) {
            if ([arr[j] integerValue]<[arr[min] integerValue]) {
                min=j;
            }
        }
         
        NSInteger temp=[arr[i] integerValue];
        arr[i]=[NSNumber numberWithInteger:[arr[min] integerValue]];
        arr[min]=[NSNumber numberWithInteger:temp];
 
    }
    return arr;
}

测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
NSMutableArray *arr=[[NSMutableArray alloc]initWithCapacity:10];
[arr addObject:@"4"];
[arr addObject:@"3"];
[arr addObject:@"6"];
[arr addObject:@"9"];
[arr addObject:@"1"];
[arr addObject:@"10"];
[arr addObject:@"8"];
[arr addObject:@"0"];
MySort  *sort=[[MySort alloc]init];
 
NSMutableArray  *resultArr= [sort selectorSort:arr];
 
for (NSInteger i=0; i<[resultArr count]; i++) {
    NSLog(@"%@",[resultArr objectAtIndex:i]);
}
NSLog(@"iOS技术交流群:228407086");
NSLog(@"原文地址:http://www.cnblogs.com/xiaofeixiang");

效果如下:

本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/4579446.html,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值