iOS 개발 의 데이터 구조 와 알고리즘
데이터 구조
1. 집합 구조, 선형 구조, 나무 구조, 도형 구조
1. : ,
2. : ( 、 ),
3. : ,
4. : 、 、 , ,
2. 데이터 구조의 저장
1. ( 、 --- , )
2. (12345 , 1( )2( )5( )3( )4( ), , ,1( )1 2,2 3, , )
3. 단 방향 링크, 양 방향 링크, 순환 링크
1. :A->B->C->D->E,E A ,
2. :EB->C->D->E, , , ,
3. :->A->B->C->D->E->,
4. 이 진 트 리, 밸 런 스 이 진 트 리
1. : + , ,
:
(1) ,
(2)
(3)
(4)
(5)
알고리즘
1. 거품 정렬
// 1.
NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"16", @"28", @"6", @"8", @"66", nil]
// 2.
for (int i = 0; i < arr.count - 1; i++)
{
for (int j = 0; j < arr.count - 1 - i; j++)
{
//
if ([arr[j] intValue] > [arr[j + 1] interValue])
{
//
int temp = [arr[j] interValue];
arr[j] = arr[j + 1];
arr[j + 1] = [NSString stringWithFormat:@"%d", temp];
}
}
}
// 3.
NSLog(@" :%@", arr);
2. 정렬 선택
// 1.
NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"16", @"28", @"6", @"8", @"66", nil]
// 2.
for (int i = 0; i < arr.count - 1; i++)
{
for (int j = i + 1; j < arr.count; j++)
{
//
if ([arr[i] intValue] > [arr[j] interValue])
{
//
int temp = [arr[i] interValue];
arr[i] = arr[j];
arr[j] = [NSString stringWithFormat:@"%d", temp];
}
}
}
// 3.
NSLog(@" :%@", arr);
3. 정렬 삽입
NSMutableArray *list = [NSMutableArray = arrayWithObjects:@"16", @"18", @"6", @"8", @"66", nil];
for (int i = 1; i < [list count]; i++)
{
int j = i;
NSInteger temp = [[list objectAtIndex:i] integerValue];
while (j > 0 && temp < [[list objectAtIndex:j-1] integerValue])
{
[list replaceObjectAtIndex:J withObject:[list objectAtIndex:(j - 1)]];
j--;
}
[list replaceObjectAtIndex:j withObject:[NSNumber numberWithInteger:temp]];
}
NSLog(@" :%@", list);
4. 힐 정렬
NSMutableArray *list = [NSMutableArray = arrayWithObjects:@"16", @"18", @"6", @"8", @"66", nil];
int gap = [list count] / 2.0;
while (gap >= 1)
{
for (int I = gap; i < [list count]; i++)
{
NSInteger temp = [[list objectAtIndex:i] integerValue];
int j = I;
while (j >= gap && temp < [[list objectAtIndex:(j-gap)] integerValue])
{
[list replaceObjectAtIndex:j withObject:[list objectAtIndex:j - gap]];
}
[list replaceObjectAtIndex:j withObject:[NSNumber numberWithInteger:temp]];
}
gap = gap / 2;
}
NSLog(@" :%@", list);
1.
if (low < height)
{
NSInteger mid = (low + height) / 2;
if (key == arr[mid])
{
return mid;
} else if (key < arr[mid])
{
return [self erFenChaZhaoSuanFa:arr low:low High:mid - 1 Data:key];
} else
{
return [self erFenChaZhaoSuanFa:arr low:mid + 1 High:hight Data:key];
}
} else
{
NSLog(@" ");
return -1;
}
2.
- (void)kuaisupaixu:(NSMutableArray *)arr low:(NSInteger)left High:(NSInteger)right
{
if(left <= right) return;
NSInteger I = left;
NSInteger j = right;
NSInteger key = [arr[left] integerValue];
while (I < j) {
while (I < j && key <= [arr[j] integerValue]) {
j--;
}
arr[i] = arr[j];
while (I < j && key >= [arr[I] integerValue]) {
I++;
}
arr[j] = arr[i];
}
arr[i] = [NSNumber numberWithInteger:key];
[self kuaisupaixu:arr low:left high:i-1];
[self kuaisupaixu:arr low:i+1 high:right];
}
참고 글 iOS 데이터 구조 및 알고리즘
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.