一个优化过的OC的简单冒泡排序算法
2016-05-27 17:02
197 查看
话说用OC来写排序算法,其实基本上是使用不到的。因为OC底层已经提供了一些现成的经优化过的排序算法。
这里只是为了用OC来实现,并说明一下其中使用的一个BOOl isFinished可以有效地优化排序算法,降低时间复杂度。
typedef struct JJListNode {
NSInteger data;
struct JJListNode *next;
}listMdeg;
- (void)sortList:(listMdeg *)headFr {
BOOL isFinished = YES;
for (listMdeg *q = headFr; q->next !=nil; q=q->next) {
listMdeg *p = q->next;
for (listMdeg *r = q; p !=nil; p=p->next, r=r->next) {
if (p->data < r->data) {
NSInteger m = p->data;
p->data = r->data;
r->data = m;
isFinished = NO;
}
}
if (isFinished ==
YES) {
break;
}
}
}
这里只是为了用OC来实现,并说明一下其中使用的一个BOOl isFinished可以有效地优化排序算法,降低时间复杂度。
typedef struct JJListNode {
NSInteger data;
struct JJListNode *next;
}listMdeg;
- (void)sortList:(listMdeg *)headFr {
BOOL isFinished = YES;
for (listMdeg *q = headFr; q->next !=nil; q=q->next) {
listMdeg *p = q->next;
for (listMdeg *r = q; p !=nil; p=p->next, r=r->next) {
if (p->data < r->data) {
NSInteger m = p->data;
p->data = r->data;
r->data = m;
isFinished = NO;
}
}
if (isFinished ==
YES) {
break;
}
}
}
相关文章推荐
- 博客地址迁移啦!!!
- 20160527 数据分析与SAS9 对考生成绩进行频率分析
- 算法基础 - 最小生成树(Kruscal算法)
- Co-op 重塑了四叶草标志
- 团队作业—第二阶段02
- Android设计模式--适配器模式--Adapter入门
- Merkle Tree学习
- Qt调用qt生成的dll 显式和隐式(静态动态)
- hadoop技术内幕
- keil5不能识别自己写的头文件
- C# WINFORM 强制让窗体获得焦点(可实现单次置顶或持续置顶)
- 浏览器乱码问题
- 编译openjdk源码
- 有关cocoaPods的相关操作,使用cocoaPods下载第三方到具体工程
- android studio 真机运行的时候gradle 报错 AGPBI: {"kind":"SIMPLE","text":"Error: C
- JSONModel解析数据成Model
- jQuery的deferred对象详解
- 泛型
- 关于dB,那些你需要知道的常识
- 微信测试号的开发——网页授权