버블 정렬 및 삽입 정렬과 비교할 때 셸 정렬에서 시간 복잡성이 적은 이유는 무엇입니까? 우리는 어떻게 시간 복잡성을 계산할 수 있습니까? 즉, 우리는 어떤 기준에서 우리 코드가 높거나 낮은 시간 복잡성이라고 생각합니까? 우리는 우리의 코드가 높거나 낮은 시간 복잡도 N 요소와 알고리즘을 정렬 고려하는 간단한 일이 생각 무엇을 기준으로 귀하의 질문에 에 대해서는셸 정렬의 시간 복잡도
는#include <stdio.h>
void shellsort(int arr[], int num)
{
int i, j, k, tmp;
for (i = num/2; i > 0; i = i/2)
{
for (j = i; j < num; j++)
{
for (k = j - i; k >= 0; k = k - i)
{
if (arr[k + i] >= arr[k])
break;
else
{
tmp = arr[k];
arr[k] = arr[k + i];
arr[k + i] = tmp;
}
}
}
}
}
int main()
{
int arr[30];
int k, num;
printf("Enter total no. of elements : ");
scanf("%d", &num);
printf("\nEnter %d numbers: ", num);
for (k = 0; k < num; k++)
{
scanf("%d", &arr[k]);
}
shellsort(arr, num);
printf("\n Sorted array is: ");
for (k = 0; k < num; k++)
printf("%d ", arr[k]);
return 0;
}
이 https : //en.m을 읽으십시오. .wikipedia.org/wiki/Time_complexity –
쉘 정렬의 점근 적 복잡성은 구현의 세부 사항에 따라 답변이 달라지는 까다로운 질문입니다 (https://en.wikipedia.org/wiki/Shellsort 참조). 이는 SO가 허용하는 것보다 훨씬 광범위한 질문입니다. –
코드 형식, 맞춤법/문법 – Constantin