OC 算法之冒泡排序

2017-03-04  本文已影响39人  闹钟先生的闹钟

冒泡排序法的基本思想:(以升序为例)含有n个元素的数组原则上要进行n-1次排序。对于每一躺的排序,从第一个数开始,依次比较前一个数与后一个数的大小。
如果前一个数比后一个数大,则进行交换。这样一轮过后,最大的数将会出现称为最末位的数组元素。第二轮则去掉最后一个数,对前n-1个数再按照上面的步骤找出最
大数,该数将称为倒数第二的数组元素......n-1轮过后,就完成了排序。

实现代码:

    NSMutableArray * numArray = [NSMutableArray arrayWithObjects:@"3",@"13",@"5",@"2",@"7",@"18",@"21",@"16",@"23",@"33", nil];
    
    for (int i = 0; i<numArray.count-1; i++) {
        //-1 是因为循环后最后一位是整个排序最大的数
        for (int j =0; j<numArray.count-1-i; j++) {
            //-i 是因为每次i循环后最后一位是每次循环的最大值
            if ([numArray[j] intValue]>[numArray[j+1] intValue]) {
                int temp = [numArray[j] intValue];
                numArray[j] = numArray[j + 1];
                //OC中的数组只能存储对象,所以这里转换成string对象
                numArray[j + 1] = [NSString stringWithFormat:@"%d",temp];
                
            }
        }
    }
上一篇下一篇

猜你喜欢

热点阅读