直接插入排序(OC实现)

来源:互联网 发布:10月份淘宝活动 编辑:程序博客网 时间:2024/06/11 06:05

一个小程序

#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {//        C-实现//       int  a[5]={9,8,10,2,20};//        int key,j;//        for (int i=1; i<5; i++) {//直接插入排序//            key=a[i];//            for (j=i-1; j>=0&&a[j]>key; j--) {//                a[j+1]=a[j];//            }//            a[j+1]=key;//        }//        for (int i=0; i<5; i++) {//            NSLog(@"%i",a[i]);//        }//        OC实现        NSMutableArray *array=[NSMutableArray arrayWithObjects:@9,@8,@10,@2,@20, nil];        id key;        NSInteger j;        for (NSInteger i=1; i<array.count; i++) {            key=[array objectAtIndex:i];//取到每一个待插入的数据,从a[1]开始查找            for (j=i-1; j>=0&&array[j]>key; j--) {//                如果之前的数比key大,就将这个数向后移动一个位置,留出空来让key插入//                就像整牌一样                [array exchangeObjectAtIndex:j+1 withObjectAtIndex:j];//交换            }            [array replaceObjectAtIndex:j+1 withObject:key];        }        for (key in array) {            NSLog(@"%@",key);        }    }    return 0;}

运行:

这里写图片描述

0 0
原创粉丝点击