美文网首页
冒泡排序

冒泡排序

作者: 千秋画雪 | 来源:发表于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