힐 정렬, 빠 른 정렬, 쌓 기 정렬
template
void ShellInsert(T elem[],int n,int incr)
{
for(int i=incr;i=0&&e
void ShellSort(T elem[],int n,int incr[],int t)
{
for(int k=0;k
빠 른 정렬 빠 른 정렬 은 모든 같은 수량 급 O (nlogn) 의 정렬 알고리즘 에서 평균 성능 이 가장 좋 은 것 으로 인 정 받 지만, 원래 서열 이 질서 가 있 을 때 빠 른 정렬 은 거품 정렬 으로 탈바꿈 하고 시간 복잡 도 는 O (n ^ 2) 입 니 다.
template
int Patition(T elem[],int low,int high)
{// , 。
while(low
void QuickSortHelp(T elem[],int low,int high)
{//
int pos=Partition(elem,low,high);
QuickSortHelp(elem,low,pos-1);
QuickSortHelp(elem,pos+1,high);
}
template
void QuickSort(T elem[],int n)
{
QuickSortHelp(elem,0,n-1);
}
쌓 기 정렬 최 악의 경우 시간 복잡 도 는 O (nlogn) 이 고 임시 교환 에 사용 할 임시 저장 공간 만 차지 합 니 다.
template
void SiftAdjust(int elem[],int high,int low)
{//elem elem[low] , elem[low]
for(int f=low,i=2*f+1;i<=high;i=2*i+1)
{
if(i=elem[i])
break;
Swap(elem[f],elem[i]);
f=i;
}
}
template
void HeapSort(int elem[],int n)
{// , ,
int i;
for(i=(n-2)/2;i>=0;i--)
SiftAdjust(i,n-1);
for(i=n-1;i>=0;i--)
{
Swap(elem[0],elem[i]);
SiftAdjust(0,i-1);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
성형 도면 의 깊이 와 넓이텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.