您的位置:首页 > 移动开发 > IOS开发

归并排序算法 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++;

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: