美文网首页
冒泡排序

冒泡排序

作者: 千秋画雪 | 来源:发表于2016-10-28 21:02 被阅读7次

    一、数字排序

    排序思想

    外层循环:每一次循环选出一个最大或最小值,循环次数是 元素个数-1
    内层循环:比较相邻两个元素的大小,按比较方式来交换位置


    - (void)viewDidLoad {
        [super viewDidLoad];
    
        // 1.定义数组
        int number[10] = {100,0,99,56,78,4,33,42,1,86};
        
        // 2.排序
        number_compositor(number, 10);
    }
    
    // 排序函数
    void number_compositor(int num[10],int n) {
        
        // 排序
        for (int i=0; i<n-1; i++) {
            for (int j=0; j<n-1; j++) {
                if (num[j] > num[j+1]) {
                    num[j] = num[j] ^ num[j+1];
                    num[j+1] = num[j] ^ num[j+1];
                    num[j] = num[j] ^ num[j+1];
                }
            }
        }
    
        // 遍历数组
        for (int i=0; i<n; i++) {
            NSLog(@"%d",num[i]);
        }
    }
    

    二、字符串排序

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        // 定义一个可变数组
        NSMutableArray *strArray = [[NSMutableArray alloc] initWithObjects:@"CHINA",@"AMERICA",@"AUSTRALIA",@"FRANCE",@"GERMAN", nil];
     
        [self string_compositor:strArray];
    }
    
    // 排序方法
    - (void) string_compositor:(NSMutableArray *)array {
    
        // 1.获取数组长度
        int len = (int)array.count;
    
        // 2.冒泡排序
        for (int i=0; i<len-1; i++) {
            for (int j=0; j<len-1; j++) {
                if ([array[j] compare:array[j+1]] > 0) {
                    [array exchangeObjectAtIndex:j withObjectAtIndex:j+1];
                }
            }
        }
        
        // 3.打印数组元素
        NSLog(@"%@",array);
    }
    

    相关文章

      网友评论

          本文标题:冒泡排序

          本文链接:https://www.haomeiwen.com/subject/qpmeuttx.html