程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> nsarray-對數組分類輸出結果不正確

nsarray-對數組分類輸出結果不正確

編輯:編程綜合問答
對數組分類輸出結果不正確

使用ios內置排序方法對數組進行分類,輸出結果不對。後來用了冒泡排序法實現,想優化代碼怎麼解決?

NSArray *numbers=@[@"45",@"2",@"11",@"31",@"240",@"310"];
numbers=[numbers sortedArrayUsingSelector:@selector(compare:)];

NSLog(@"sorted array is %@",numbers);

NSMutableArray *m_Array=[[NSMutableArray alloc] initWithArray:numbers];

[numbers enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    for (int j=idx+1; j<numbers.count; j++) {

        if ([m_Array[idx] intValue]>[m_Array[j] intValue]) {
            NSString *temp=m_Array[idx];
            [m_Array replaceObjectAtIndex:idx withObject:m_Array[j]];
            [m_Array replaceObjectAtIndex:j withObject:temp];
        }
    }
}];

NSLog(@"sorted array after bubble sort is %@",m_Array);

輸出結果:

分類數組:( 11, 2, 240, 31, 310, 45 )

冒泡排序法的結果:( 2, 11, 31, 45, 240, 310 )

最佳回答:


numbers=[numbers sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
     return [obj1 intValue] > [obj2 intValue];  //轉成整型比較,才會拿到正確的排序結果
}];

NSLog(@"sorted array is %@",numbers);
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved