算法-插入排序
2015-06-17 09:04
246 查看
插入排序的基本逻辑就是将最小的元素移动到左边,左边的数组是有序的,右边的数组基本上不需要动,插入排序运行的时间很大情况取决于输入元素的初始顺序,对于一个很大的且其中的元素已经有序的数组进行排序会比随机顺序的数组或者逆序的数组快很多。插入排序对部分有序的数组是非常有效的,数组中的每个元素都离最终的位置不远,数组中只有几个元素位置不正确可以建议选择插入排序。
关键代码:
调用:
效果如下:
关键代码:
-(NSMutableArray *)insertSort:(NSMutableArray *)arr{ for (NSInteger i=1; i<[arr count]; i++) { for (NSInteger j=i; j>0&&[arr[j] integerValue]<[arr[j-1] integerValue]; j--) { NSInteger temp=[arr[j] integerValue]; arr[j]=[NSNumber numberWithInteger:[arr[j-1] integerValue]]; arr[j-1]=[NSNumber numberWithInteger:temp]; } } return arr; }
调用:
NSMutableArray *arr=[[NSMutableArray alloc]initWithCapacity:10]; [arr addObject:@"9"]; [arr addObject:@"3"]; [arr addObject:@"2"]; [arr addObject:@"8"]; [arr addObject:@"1"]; [arr addObject:@"10"]; [arr addObject:@"4"]; [arr addObject:@"0"]; MySort *sort=[[MySort alloc]init]; NSMutableArray *resultArr= [sort insertSort:arr]; for (NSInteger i=0; i<[resultArr count]; i++) { NSLog(@"%@",[resultArr objectAtIndex:i]); } NSLog(@"iOS技术交流群:228407086"); NSLog(@"原文地址:http://www.cnblogs.com/xiaofeixiang");
效果如下:
相关文章推荐
- 每天一个linux命令(23):Linux 目录结构
- 我——成为一个人,不再迷茫
- 九歌·湘夫人
- delete table 和 truncate table
- iOS 9 新增 UIStackView 官方文档翻译
- 源码推荐(6.17):keyboard细节处理 流畅 简洁 复用性高,用tableview解决长文字 过多项的Actio
- 10步成为专业iOS开发者——从零起步
- 第15周 程序阅读-二进制文件及文件的读取4
- HDU 5039 Hilarity(dfs序+线段树)
- Android 屏幕实现水龙头事件
- 2015 Objective-C 三大新特性
- 第十五周程序阅读三
- 欢迎使用CSDN-markdown编辑器
- 用二进制文件处理学生信息
- 6.17 阅读程序 理解seekg() tellg()的用法
- hbase shell 常用命令
- 图片或文件上传阿里云服务
- 移动端rem案例
- DL、 DT、 DD使用
- 我——成为真实的自己