기본 알고리즘
NSMutableArray * allData = [NSMutableArray array];
for (int i = 0; i < 10; i++) {
[allData addObject:@(i)];
}
for (int i = 0; i < allData.count-1; i++) {
for (int j = 0; j < allData.count-1-i; j++) {
NSInteger a = [allData[j] integerValue];
NSInteger b = [allData[j+1] integerValue];
if (a < b) {
allData[j] = @(b);
allData[j+1] = @(a);
}
}
}
NSMutableArray * allData2 = [NSMutableArray array];
for (int i = 0; i < 10; i++) {
[allData2 addObject:@(i)];
}
for (int i = 0; i< allData2.count -1; i++) {
for (int j = i +1; j < allData2.count; j++) {
NSInteger a = [allData2[i] integerValue];
NSInteger b = [allData2[j] integerValue];
if (a < b) {
allData2[i] = @(b);
allData2[j] = @(a);
}
}
}
*위의 두 알고리즘은 기본적으로 동일한 시간을 소모합니다.
NSMutableArray * allData3 = [NSMutableArray array];
for (int i = 0; i < 1000; i++) {
[allData3 addObject:@(i)];
}
for (int i = 0; i < allData3.count; i++) {
for (int j = i; j >0&&(allData3[j]
*위의 두 개보다 시간이 적게 소요됨
-(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 = (int)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];
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.