一、数字排序
排序思想
外层循环:每一次循环选出一个最大或最小值,循环次数是 元素个数-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);
}