算法-选择排序
2015-06-16 08:41
369 查看
选择排序(Selection sort)是一种常见的排序算法,算法实现的逻辑每一次从待排序的数组中选出最小(或最大)的一个元素,存放在序列的第一个位置,然后生鲜的元素中选择第二小(或者第二大)的元素放在第二个位置,以此类推,将整个数组排序成功。对于一个长度为N的数组,选择排序大概需要N^2/2的比较和N次交换,运行的时间和输入无关,一个有序的数组和一个无序的数组最终运行的时间是一样的,数据移动的次数是最少的,交换数组的次数和数组的大小呈线性关系。
关键代码实现如下:
测试:
效果如下:
关键代码实现如下:
-(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; }
测试:
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");
效果如下:
相关文章推荐
- [Mac OS X] Sublime Text 3083 Crack 破解 注册码
- 在Excel中使用SQL语句实现精确查询 (2012-08-21 00:00:00)转载▼
- servlet课堂笔记
- 外观模式(Facde)【设计模式】
- servlet课堂笔记
- Android 异常后如何重启应用
- pip install -i douban..
- 股票API
- VS2010,2012,2013自定义注释[代码段]的另种方法
- 深入理解Oracle表(3):三大表连接方式详解之Nested loop join和 Sort merge join
- MyEclipse6.5 Blue注册码生成器,有效期至2018年
- PHP代码
- PBDOM操作XML文档轻松入门
- [准备篇6]VMWare搭建Openstack——使用VMnet的方式模拟多网卡的OpenStack环境配置(2)
- 多线程(高级篇)
- map的详细用法
- 回顾系列3-刀塔传奇
- 多线程(高级篇)
- 使用github
- WIN7局域网文件共享设置方法