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에 따라 라이센스가 부여됩니다.