归并排序算法 iOS
2016-03-08 10:22
381 查看
- (void)mergeSortArray:(NSMutableArray
*)array lowIndex:(NSInteger)lowIndex
highIndex:(NSInteger)highIndex
{
if (lowIndex >= highIndex) {
return;
}
NSInteger
midIndex = lowIndex + (highIndex - lowIndex) /
2;
[self
mergeSortArray:array
lowIndex:lowIndex
highIndex:midIndex];
[self
mergeSortArray:array
lowIndex:midIndex +
1
highIndex:highIndex];
[self
mergeArray:array
lowIndex:lowIndex
midIndex:midIndex
highIndex:highIndex];
}
- (void)mergeArray:(NSMutableArray
*)array lowIndex:(NSInteger)lowIndex
midIndex:(NSInteger)midIndex highIndex:(NSInteger)highIndex
{
for (NSInteger
i = lowIndex; i <= highIndex; i ++) {
self.tempArr[i]
= array[i];
}
NSInteger
k = lowIndex;
NSInteger
l = midIndex +
1;
for (NSInteger
j = lowIndex; j <= highIndex; j ++) {
if (l > highIndex) {
array[j] =
self.tempArr[k];
k++;
}else
if (k > midIndex)
{
array[j] =
self.tempArr[l];
l++;
}else
if ([self.tempArr[k]
integerValue] > [self.tempArr[l]
integerValue])
{
array[j] =
self.tempArr[l];
l++;
}else
{
array[j] =
self.tempArr[k];
k++;
}
}
}
*)array lowIndex:(NSInteger)lowIndex
highIndex:(NSInteger)highIndex
{
if (lowIndex >= highIndex) {
return;
}
NSInteger
midIndex = lowIndex + (highIndex - lowIndex) /
2;
[self
mergeSortArray:array
lowIndex:lowIndex
highIndex:midIndex];
[self
mergeSortArray:array
lowIndex:midIndex +
1
highIndex:highIndex];
[self
mergeArray:array
lowIndex:lowIndex
midIndex:midIndex
highIndex:highIndex];
}
- (void)mergeArray:(NSMutableArray
*)array lowIndex:(NSInteger)lowIndex
midIndex:(NSInteger)midIndex highIndex:(NSInteger)highIndex
{
for (NSInteger
i = lowIndex; i <= highIndex; i ++) {
self.tempArr[i]
= array[i];
}
NSInteger
k = lowIndex;
NSInteger
l = midIndex +
1;
for (NSInteger
j = lowIndex; j <= highIndex; j ++) {
if (l > highIndex) {
array[j] =
self.tempArr[k];
k++;
}else
if (k > midIndex)
{
array[j] =
self.tempArr[l];
l++;
}else
if ([self.tempArr[k]
integerValue] > [self.tempArr[l]
integerValue])
{
array[j] =
self.tempArr[l];
l++;
}else
{
array[j] =
self.tempArr[k];
k++;
}
}
}
相关文章推荐
- iOS 原生扫描二维码
- iOS8 【xcode6中添加pch全局引用文件】
- iOS海哥开发笔记 (海哥原创,绘图Quartz-2d的简单使用 二)
- ios常见加密解密算法介绍与应用
- iOS海哥开发笔记 (海哥原创,Quartz-2d的简单使用 一)
- iOS开发企业版ipa分发
- 深入浅出-iOS函数式编程的实现 && 响应式编程概念
- 类似ios滑动开关
- 【Xamarin挖墙脚系列:IOS现有的设备SDK /OS/硬件一览】
- 解决Xcode库lib在generic iOS devices平台上编译失败的问题
- IOS-OC 编码建议
- iOS 9 学习系类: Gameplay Kit – Pathfinding
- iOS7.0适配问题
- 让我们再谈谈 iOS 安全
- IOS -定位(一)
- iOS中根据已有经纬度定位并显示在地图上
- ios开发显示wifi速率功能开发
- 指示器(菊花效果)代码演示--iOS开发
- 提示框逐渐消失、渐隐视图--iOS开发
- ios 常见错误记录