归并排序算法 iOS

来源:互联网 发布:eugen systems知乎 编辑:程序博客网 时间:2024/06/05 15:57
- (void)mergeSortArray:(NSMutableArray*)array lowIndex:(NSInteger)lowIndex highIndex:(NSInteger)highIndex
{
   
if (lowIndex >= highIndex) {
       
return;
    }
   
NSInteger midIndex = lowIndex + (highIndex - lowIndex) / 2;
    [
selfmergeSortArray:arraylowIndex:lowIndexhighIndex:midIndex];
    [
selfmergeSortArray:arraylowIndex:midIndex +1 highIndex:highIndex];
    [
selfmergeArray:arraylowIndex:lowIndexmidIndex:midIndexhighIndex:highIndex];
}

- (
void)mergeArray:(NSMutableArray*)array lowIndex:(NSInteger)lowIndex midIndex:(NSInteger)midIndex highIndex:(NSInteger)highIndex
{
   
for (NSIntegeri = lowIndex; i <= highIndex; i ++) {
       
self.tempArr[i] = array[i];
    }
   
   
NSInteger k = lowIndex;
   
NSInteger l = midIndex + 1;
   
for (NSIntegerj = lowIndex; j <= highIndex; j ++) {
       
if (l > highIndex) {
            array[j] =
self.tempArr[k];
            k++;
        }
elseif (k > midIndex)
        {
            array[j] =
self.tempArr[l];
            l++;
        }
elseif ([self.tempArr[k]integerValue] > [self.tempArr[l]integerValue])
        {
            array[j] =
self.tempArr[l];
            l++;
        }
else
        {
            array[j] =
self.tempArr[k];
            k++;
        }
    }
}
0 0
原创粉丝点击