嗨,我是iPhone新手。我正在做的是整理图像数组;该数组由22个元素组成。我正在编写代码:
NSMutableArray *images2 = [[NSMutableArray alloc] initWithArray:images]
int n=22;
for (int i=0;i<n;i++){
for (int j=1;j<n-i;j++){
if(count[j-1]>count[j]){
int t = count[j-1]
count[j-1] = count[j]
count[j] =t ;
NSString *tempimage = [images objectAtIndex:j-1];
[images2 replaceobjectAtIndex:j-1 withobject:[image2 objectAtIndex:j]];
[images2 replaceobjectAtIndex:j withobject:tempimage];
}
}
}
images = [[NSMutableArray alloc] initWithArray:images2];
它排序很好,但最后它取代了第21张图像。这有什么不对?如果有任何错误,请发布正确的代码。我需要的是将第一张图像替换为最后一张图像和第二张图像。
答案 0 :(得分:1)
解决您的问题:不要自己实施排序,让框架为您完成。 NSMutableArray
有许多排序方法可以为您完成所有这些工作。如果您可以澄清几点(请参阅您的问题的评论),我们可以帮助您构建正确的排序方法调用。
– exchangeObjectAtIndex:withObjectAtIndex:
– sortUsingDescriptors:
– sortUsingComparator:
– sortWithOptions:usingComparator:
– sortUsingFunction:context:
– sortUsingSelector:
答案 1 :(得分:0)
正如其他人所提到的,你应该让框架为你做排序。它比上面的代码更有效率。
但是,如果您想知道排序算法有什么问题,我认为您缺少一个外部while
循环来检查在排序数组之前是否需要另一个传递。您正试图实施bubble sort,对吗?