02. 복잡성 분석 및 안정성 (기본 데이터 구조 알고리즘)

복잡성 분석 및 안정성

  • 최적의 시간 복잡성
  • 최악의 시간 복잡성
  • 평균 케이스 시간 복잡성
// n 표 축소 수 배열 的 长度
int find (int [] 배열, int n, int x) { 
  int i = 0; 
  int pos = -1; 
  for (; i <n; ++ i) { 
    if (array [i] == x) { 
       pos = i; 
       단절; 
    } 
  } 
  return pos; 
}

왜냐하면 검색 할 변수 x는 배열의 아무 곳에 나 나타날 수 있기 때문입니다. 배열의 첫 번째 요소가 검색 할 변수 x 인 경우 나머지 n-1 데이터를 계속 탐색 할 필요가 없으며 시간 복잡도는 O (1)입니다. 그러나 변수 x가 배열에 존재하지 않으면 전체 배열을 다시 횡단해야하며 시간 복잡도는 O (n)이됩니다. 따라서 상황에 따라이 코드의 시간 복잡도가 다릅니다.

최고와 최악은 극단적 인 경우이고 발생 확률이 적기
때문에 평균 사례의 복잡성을 분석해야합니다.

  • 상각 된 시간 복잡성

알고리즘 안정성

버블 정렬은 작은 요소를 앞으로 조정하거나 큰 요소를 뒤로 조정하는 것입니다. 비교는 인접한 두 요소의 비교이며이 두 요소 간에도 교환이 발생합니다.

따라서 두 요소가 같으면 다시 교환되지 않습니다. 두 개의 동일한 요소가 인접하지 않으면 이전의 2x2 교환을 통해 두 요소가 서로 인접 해 있어도이 때 교환되지 않습니다. , 그래서 동일한 요소 이전과 이후의 순서가 변경되지 않았 으므로 버블 정렬은 안정적인 정렬 알고리즘입니다.

내부 알고리즘인가요?

내부 알고리즘이란 무엇입니까?

  • 추가 리소스에 의존하거나 적은 수의 추가 리소스에 의존하지 말고 출력에만 의존하여 입력을 처리하십시오.
  • 공간 복잡성? (1) 현장 알고리즘으로 간주 할 수 있습니다.
  • Not-in-place 또는 Out-of-place
    거품 정렬 이라고하는 Non-in-place 알고리즘 은 In-place에 속합니다.

추천

출처blog.51cto.com/huangkui/2677731