插入排序

来源:互联网 发布:最新课件制作软件 编辑:程序博客网 时间:2024/05/21 06:03

实现思路

有一个无序数组 A
循环 i 从第 0 开始到 A 的长度, 将已经有序的第 0 ~ i 个数之间的数当成一个数组A’ ( 如果 i = 0, 则此时 A’ 中只有一个元素), 依次把第 i + 1 个数放入到 A’ 中合适的位置. 最终将无序数组 A 变成有序数组.

伪代码

for i = 1 to array.length
……key = array[i]
……j = i - 1
……//将A[i] 插入到有序数组 A[0 .. i - 1]
……while j >= 0 && A[j] > key
…………A[j + 1] = A[j]
…………j = j - 1
……A[j + 1] = key

OC实现

    // 一个无序数组array    NSMutableArray *array = [NSMutableArray arrayWithArray:@[@5, @2, @4, @6, @1, @3]];    //将array以插入排序的方式变成有序数组    for (int j = 1; j < array.count; j++)    {        int key = [array[j] intValue];        int i = j - 1;        //将第 i 个数插入到有序数组 array[0 .. i - 1]中        while (i >= 0 && [array[i] intValue] > key)        {            array[i + 1] = array[i];            i = i - 1;        }        array[i + 1] = [NSNumber numberWithInt:key];        NSLog(@"%@", array);    }
原创粉丝点击