常用的演算法排序問題 OC

2021-07-31 12:05:02 字數 1380 閱讀 7918

//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...