Для получения полного доступа
зарегистрируйтесь.
Snippet,  C

HeapSort за 15 строк


Не совсем честно: если тип будет не int, то b придётся описывать на отдельной строке. Нехорошо, что идёт три обращения к элементу a[c1], но если их оптимизировать, будет длиннее. Понадеемся на компилятор.

void heapsort(int *a,int l){
	int b,c,c1,p;
	for(p=l/2;l>1;){
		if(p==0){
			b=a[--l]; 
			a[l]=a[0];
		} else b=a[--p];
		for(c=p;(c1=2*c+2)<=l;с=с1){
			if(c1==l || a[c1]<a[c1-1]) c1--;
			if(a[c1]<b) break;
			a[c]=a[c1];
		}
		a[c]=b;
	}
}
  сортировка

Автор


Gravatar image
mrrl
  • Reputation: 3
  • Snippets : 6
  • Revisions : 0
Подписаться

Чтобы увидеть комментарии, нужно быть участником сообщества

Регистрация