一、數組排序介紹
數組是在iOS開發中使用最為廣泛的數據結構之一,而數組排序也是日常開發中十分常見的需求。數組排序能夠讓我們更加方便快捷地找到數組中的最大值、最小值、中位數等。實現數組排序,需要掌握基礎排序算法,例如冒泡排序、快速排序、插入排序等。
二、排序方法
1. 冒泡排序
冒泡排序的基本思想是從數組的第一個元素開始與第二個元素進行比較,如果第一個元素大於第二個元素,則交換它們的位置,接着比較第二個元素和第三個元素,以此類推,直到排序完成。
NSArray *array = @[@5, @3, @8, @4, @1]; NSMutableArray *mArray = [NSMutableArray arrayWithArray:array]; for (int i=0; i<mArray.count-1; i++) { for (int j=0; j [mArray[j+1] integerValue]) { [mArray exchangeObjectAtIndex:j withObjectAtIndex:j+1]; } } }
2. 快速排序
快速排序是一種高效的排序算法,其基本思想是選擇一個基準元素,將數組按照基準元素分成兩部分,一部分比基準元素小,一部分比基準元素大。然後分別對這兩部分進行遞歸操作。
- (NSMutableArray *)quickSortWithArray:(NSMutableArray *)array { if (array.count <= 1) { return array; } NSMutableArray *leftArray = [NSMutableArray array]; NSMutableArray *rightArray = [NSMutableArray array]; NSInteger index = array.count/2; NSNumber *baseNum = [array objectAtIndex:index]; [array removeObject:baseNum]; for (NSNumber *num in array) { if ([num integerValue] < [baseNum integerValue]) { [leftArray addObject:num]; } else { [rightArray addObject:num]; } } NSMutableArray *resultArray = [NSMutableArray array]; [resultArray addObjectsFromArray:[self quickSortWithArray:leftArray]]; [resultArray addObject:baseNum]; [resultArray addObjectsFromArray:[self quickSortWithArray:rightArray]]; return resultArray; }
3. 插入排序
插入排序的基本思想是將數組分成有序區和無序區,從無序區中取出元素插入到有序區中,插入時要保證有序區的元素仍舊有序。
NSArray *array = @[@5, @3, @8, @4, @1]; NSMutableArray *mArray = [NSMutableArray arrayWithArray:array]; for (int i=1; i0; j--) { if ([mArray[j] integerValue] < [mArray[j-1] integerValue]) { [mArray exchangeObjectAtIndex:j withObjectAtIndex:j-1]; } } }
三、總結
數組排序是iOS開發中的基本操作,它能夠讓我們更輕鬆地處理數據。常用的排序方法有冒泡排序、快速排序和插入排序,每種排序方法的適用場景不同,具體使用需要根據實際情況來選擇。掌握這些排序方法,能夠使我們的代碼更加規範、高效。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/256810.html