写了两个简单的排序函数

    技术2022-05-19  20

    需要时可以贴上去用

    void InsertSort(NSMutableArray *array) {

    int i, j;

    for (i = 1; i < [array count]; ++i) {

    id temp = [[array objectAtIndex:i] copy];

    for (j = i; j > 0 && [temp intValue] < [[array objectAtIndex:j - 1] intValue]; --j)

    [array replaceObjectAtIndex:j withObject:[array objectAtIndex:j - 1]];

    [array replaceObjectAtIndex:j withObject:temp];  

    }

    }

     

    void SelectSort(NSMutableArray *array) {

    int i, j;

    for (i = 0; i < [array count] - 1; ++i) 

    for (j = i + 1; j < [array count]; ++j) 

    if ([[array objectAtIndex:i] intValue] > [[array objectAtIndex:j] intValue]) {

    id temp = [[array objectAtIndex:j] copy];

    [array replaceObjectAtIndex:j withObject:[array objectAtIndex:i]];

    [array replaceObjectAtIndex:i withObject:temp];

    }

    }

     

    void BSelectSort(NSMutableArray *array) {

    int i, j, high, low, m;

    for (i = 1; i < [array count]; ++i) {

    id temp = [[array objectAtIndex:i] copy];

    low = 0;

    high = i - 1;

    while (low <= high) {

    m = (low + high) / 2;

    if ([[array objectAtIndex:m] intValue] > [temp intValue])

    high = m - 1;

    else

    low = m + 1;

    }

    for (j = i - 1; j >= high + 1; --j) 

    [array replaceObjectAtIndex:j + 1 withObject:[array objectAtIndex:j]];

    [array replaceObjectAtIndex:high + 1 withObject:temp];

    }

    }


    最新回复(0)