복잡성 분석 및 안정성
- 최적의 시간 복잡성
- 최악의 시간 복잡성
- 평균 케이스 시간 복잡성
// 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에 속합니다.