릴라 크리슈나
릴라 크리슈나

팔로우

2019 년 4 월 1 일·4 분 읽기

스위프트 프로그래밍 언어에서…

부분 -1:

왜 데이터 구조인가?

최신 앱을 만들 때 알고리즘에 내재 된 이론의 대부분은 종종 간과됩니다. 상대적으로 적은 양의 데이터를 사용하는 솔루션의 경우 특정 기술 또는 디자인 패턴에 대한 결정은 단지 작업을 수행하는 것만 큼 중요하지 않을 수 있습니다. 그러나 관객이 성장함에 따라 데이터가 그렇게 될 것입니다. 어떤 큰 기술 기업이 성공의 대부분은 방대한 양의 데이터를 해석 할 수있는 후계자 능력이다. 데이터를 이해하면 사용자는 트랜잭션을 연결,공유,완료 및 의사 결정을 내릴 수 있습니다.

데이터 구조 :

  • 기본(기본)데이터 구조

스택,큐,정렬 알고리즘

  • 트리

트리&이진 트리,이진 검색,힙,힙 정렬,우선 순위 큐

  • 그래프

그래프,인접 목록,다이크스트라의 알고리즘,프림의 알고리즘

점근선 분석은 알고리즘의 효율성을 설명하는 과정이며,일반적으로 빅 오 표기법이라고 알려진 일반적인 형식으로 표현된다.

  • 시간 복잡성 :

입력 크기가 증가함에 따라 알고리즘(함수)을 완료하는 데 걸리는 시간입니다.

  • 공간 복잡성:

알고리즘(함수)을 실행하는 데 필요한 메모리(공간)의 양입니다.

이 두 가지 모두 빅 오 표기법으로 표현 될 수 있습니다.

  • 가장 일반적인 시간 복잡성:

→ 일정한 시간(오(1)) :-

일정한 시간 알고리즘은 입력에 관계없이 동일한 실행 시간을 갖는 알고리즘입니다. 큰 영형 이 표기법은 영형(1).

)) :-

선형 시간 알고리즘은 속도가 입력 크기에 따라 달라집니다. 즉,입력 크기가 커짐에 따라 효율성이 떨어집니다.2 차 시간(5966>

2 차 시간(영형(엔 2)))) :-

입력 크기의 제곱에 비례하는 데 시간이 걸리는 알고리즘을 나타냅니다. 입력 크기가 증가함에 따라 신속하게 제어 할 수 없습니다.

→로그 시간(O(로그 n)) :-

일반적인 알고리즘 영형(로그 엔)시간 복잡도는 재귀 관계가 티(엔/2)+영형(1)즉,트리의 모든 후속 수준에서 문제를 절반으로 나누고 일정한 양의 추가 작업을 수행합니다.

→Quasilinear 시(O(n 로그 n)) :-

알고리즘을 말하에서 실행 quasilinear 시간(또한 언급하는 로그선형 시간)는 경우 T(n)=O(n 로그^k n)한 일정한 긍정적인 k;linearithmic 시간의 경우 k=1.

예:

데이터 구조는 데이터를 효율적으로 사용하기 위해 데이터를 구성하는 체계적인 방법입니다. 다음 용어는 데이터 구조의 기초 용어입니다.

  • 인터페이스−각 데이터 구조에는 인터페이스가 있습니다. 인터페이스는 데이터 구조가 지원하는 작업 집합을 나타냅니다. 인터페이스는 지원되는 작업 목록,이러한 작업의 유형을 수락하고 반환 할 수있는 매개 변수 유형 만 제공합니다.
  • 구현-구현은 데이터 구조의 내부 표현을 제공합니다. 구현은 또한 데이터 구조의 연산에 사용되는 알고리즘의 정의를 제공한다.

→ 데이터 구조의 특성:

  • 정확성-데이터 구조 구현은 인터페이스를 올바르게 구현해야합니다.
  • 시간 복잡성-데이터 구조의 실행 시간 또는 실행 시간은 가능한 한 작아야합니다.
  • 공간 복잡성-데이터 구조 작업의 메모리 사용은 가능한 한 적어야합니다.

→ 데이터 구조 필요:

응용 프로그램이 복잡하고 데이터가 풍부 해짐에 따라 현재 응용 프로그램이 직면하는 세 가지 일반적인 문제가 있습니다.

  1. 데이터 검색-상점의 1 백만(106)항목의 재고를 고려하십시오. 응용 프로그램이 항목을 검색하는 경우 검색 속도가 느려질 때마다 106 개의 항목에서 항목을 검색해야 합니다. 데이터가 커지면 검색 속도가 느려집니다.
  2. 프로세서 속도-프로세서 속도는 매우 높지만 데이터가 10 억 개의 레코드로 증가하면 제한적입니다.
  3. 여러 요청-수천 명의 사용자가 웹 서버에서 동시에 데이터를 검색 할 수 있으므로 데이터를 검색하는 동안 빠른 서버도 실패합니다.

위에서 언급 한 문제를 해결하기 위해 데이터 구조가 구출됩니다. 데이터는 모든 항목을 검색 할 필요가 없을 수있는 방식으로 데이터 구조로 구성 될 수 있으며 필요한 데이터는 거의 즉시 검색 될 수 있습니다.

스위프트의 스택 래퍼를 보자:

우리는 우리가 스토리지 구조로 배열을 사용 스위프트의 배열 주위에 래퍼를 만듭니다. 배열은 배열의 끝에서 수행 될 때 일정한 시간(영형(1))삽입 및 삭제를 제공합니다.

: 사용자 지정 스택,실행 취소 기능 등

답글 남기기

이메일 주소는 공개되지 않습니다.