//oc 中常用的一些排序
nsarray *arr = @[@"1",@"2",@"5",@"3",@"6",@"9",@"5",];
nsmutablearray *oldarr = [nsmutablearray arraywitharray:arr];
nslog(@"%@",oldarr);
[self bubblesort:oldarr];
[self selectionsort:oldarr];
[self insertsor:oldarr];
[self quicksort:oldarr leftindex:1 rightindex:5];
}#pragma mark - bubblesort
/** ①.氣泡排序演算法
@param array 引數
*/- (void)bubblesort:(nsmutablearray *)array }}
nslog(@"氣泡排序後: %@",array);
}#pragma mark - selectionsort
/** ②.選擇排序
@param array 引數
*/- (void)selectionsort:(nsmutablearray *)array }}
nslog(@"選擇排序後: %@",array);
}#pragma mark - insertsort
/** ③.插入排序
@param array 引數
*/- (void)insertsor:(nsmutablearray *)array
}nslog(@"插入排序後: %@",array);
}#pragma mark - quicksort
/** ④.快速排序
@param array 引數
*/- (void)quicksort:(nsmutablearray *)array leftindex:(int)left rightindex:(int)right
nslog(@"快速排序後: %@",array);
}- (int)getmiddleindex:(nsmutablearray *)array leftindex:(int)left rightindex:(int)right
if (left < right)
while (left < right && [array[left] integervalue] <= tempvalue)
if (left < right)
}array[left] = [nsnumber numberwithint:tempvalue];
return left;
}
github **位址 排序演算法 OC實現
交換類排序 氣泡排序 快速排序 插入類排序 直接插入排序 希爾排序 選擇類排序 簡單選擇排序 堆排序 時間複雜度 最好 有序情況下 o n 平均 逆序情況下 o n 2 空間複雜度 o 1 演算法思想 從小到大,從前往後 第乙個記錄和第二個記錄比較,如果第乙個大,則二者交換,否則不交換 然後第二個記...
OC中常用排序方法
oc中常用排序方法 1 不可變陣列 nsarray sortedarrayusingselector sel comparator nsarray sortedarrayusingcomparator nscomparator cmptr 2 可變陣列 void sortusingselector ...
常用的排序演算法
排序方式 插入排序 直接插入排序 shell排序 選擇排序 直接選擇排序 堆排序交換排序 氣泡排序 快速排序 歸併排序 分配和索引排序 基數排序 桶式排序 include using namespace std 直接插入排序 arr為待排陣列,n為陣列長度 void insertsort int a...