冒泡排序

一、数字排序

排序思想

外层循环:每一次循环选出一个最大或最小值,循环次数是 元素个数-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 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

二、字符串排序

- (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 0) {
                [array exchangeObjectAtIndex:j withObjectAtIndex:j+1];
            }
        }
    }
    
    // 3.打印数组元素
    NSLog(@"%@",array);
}

你可能感兴趣的:(冒泡排序)