OC中的冒泡排序法

  1. #import <Foundation/Foundation.h>  
  2.   
  3. int main(int argc, const charchar * argv[]) {  
  4.     @autoreleasepool {  
  5.           
  6.           
  7.   
  8. /* 
  9.  冒泡排序法的基本思想:(以升序为例)含有n个元素的数组原则上要进行n-1次排序。对于每一躺的排序,从第一个数开始,依次比较前一个数与后一个数的大小。 
  10.  如果前一个数比后一个数大,则进行交换。这样一轮过后,最大的数将会出现称为最末位的数组元素。第二轮则去掉最后一个数,对前n-1个数再按照上面的步骤找出最 
  11.  大数,该数将称为倒数第二的数组元素......n-1轮过后,就完成了排序。 
  12.  */  
  13.           
  14.         /*冒泡排序  分析详解: 
  15.                                                    原始数据: 28, 30, 19, 2, 23 
  16.                                                    第一趟: 
  17.                                                     
  18.                                                    第一次:28, 30, 19, 2, 23 
  19.                                                    第二次:28, 19, 30, 2, 23 
  20.                                                    第三次:28, 19, 2, 30, 23 
  21.                                                    第四次:28, 19, 2, 23, 30 
  22.                                                     
  23.                                                    第二趟: 
  24.                                                    第一次:19, 28, 2, 23, 30 
  25.                                                    第二次:19, 2, 28, 23, 30 
  26.                                                    第三次:19, 2, 23, 28, 30 
  27.                                                     
  28.                                                    第三趟: 
  29.                                                    第一次:2, 19, 23, 28, 30 
  30.                                                    第二次:2, 19, 23, 28, 30 
  31.                                                     
  32.                                                    第四趟: 
  33.                                                    第一次:2, 19, 23, 28, 30 
  34.                                                    */  
  35.         //n个元素比较n-1趟  
  36.         //每趟比较次数 = 数组元素个数 - 趟数  
  37.           
  38.         NSMutableArray *numbers = [NSMutableArray arrayWithObjects:@"17",@"28",@"36",@"15",@"39", nil nil];  
  39.         NSLog(@"排序前%@",numbers);  
  40.         for (int i = 0; i < 5 - 1; i++) {  
  41.             //比较的躺数  
  42.             for (int j = 0; j < 5 - 1 - i; j++) {  
  43.                 //比较的次数  
  44.                 if ([numbers[j] intValue] > [numbers[j + 1] intValue]) {  
  45.                     //这里为升序排序  
  46.                       
  47.                     int temp = [numbers[j] intValue];  
  48.                     numbers[j] = numbers[j + 1];  
  49.                     //OC中的数组只能存储对象,所以这里转换成string对象  
  50.                     numbers[j + 1] = [NSString stringWithFormat:@"%d",temp];  
  51.                 }  
  52.             }  
  53.         }  
  54.         NSLog(@"排序后%@",numbers);  
  55.     }  
  56.     return 0;  
  57. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值