Object-c 常用算法
(2013-05-25 22:41:40)
标签:
it |
分类: Mac/IOS那些事 |
*******************************快速排序 start**********************************/
//随即取当前取第一个,首先找到第一个的位置,然后分成left和right两组子集 ,分别对left和right继续执行分割(同上操作)
-(void)QuickSort:(NSMutableArray*)list StartIndex:(NSInteger)startIndex EndIndex:(NSInteger)endIndex{
if(startIndex >= endIndex)return;
NSNumber * temp = [list objectAtIndex:startIndex];
NSInteger tempIndex = startIndex; //临时索引 处理交换位置(即下一个交换的对象的位置)
for(int i = startIndex + 1 ; i <= endIndex ; i++){
NSNumber *t = [list objectAtIndex:i];
if([temp intValue] > [t intValue]){
tempIndex = tempIndex + 1;
[list exchangeObjectAtIndex:tempIndex withObjectAtIndex:i];
}
}
[list exchangeObjectAtIndex:tempIndex withObjectAtIndex:startIndex];
[self QuickSort:list StartIndex:startIndex EndIndex:tempIndex-1];
[self QuickSort:list StartIndex:tempIndex+1 EndIndex:endIndex];
}
//取第一个与其邻接的对比,若大则交换
-(void)BubbleSort:(NSMutableArray*)list{
for (int j = 1; j<= [list count]; j++) {
for(int i
//随即取
-(void)QuickSort:(NSMutableArray
}
//取第一个
-(void)BubbleSort:(NSMutableArray