#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void main()
{
/*heap tree*/
int heap[1000],j,a,i,f=1,p=1,gecici,son=999;
FILE *ugur;
ugur=fopen("C:\\********s and Settings\\ugur atmaca\\Desktop\\A.txt","r");
for(j=0;j<1000;j++)
{fscanf(ugur,"%d\n",&i);
heap[p-1]=i;
while(p){
if(f==1){a=p;f++;}
if(p==1)
{break;}
if(heap[p-1]<heap[p/2-1])
{gecici=heap[p/2-1];
heap[p/2-1]=heap[p-1];
heap[p-1]=gecici;p=p/2;}
else
{break;}}
p=a;p++;f=1;}
fclose(ugur);p=1;
/*sorting by using heap tree*/
ugur=fopen("C:\\********s and Settings\\ugur atmaca\\Desktop\\B.txt","w+");
for(j=0;j<1000;j++)
{p=1;fprintf(ugur,"%d\n",heap[p-1]);
heap[p-1]=heap[son];heap[son]=1001;
son--;
while(1){
if(heap[p*2-1]<heap[p*2])
{if(heap[p-1]>heap[p*2-1])
{gecici=heap[p-1];
heap[p-1]=heap[p*2-1];
heap[p*2-1]=gecici;
if(4*p>son)
break;
p*=2;
}
else {break;}}
else
{if(heap[p-1]>heap[p*2])
{gecici=heap[p-1];
heap[p-1]=heap[p*2];
heap[p*2]=gecici;
if(4*p+4>son)
break;
p=2*p+1;
}
else{break;}}}
}}
C de Heap Tree Olusturma Ve Sonra Sıralama
C de Heap Tree Olusturma Ve Sonra Sıralama
Konuyu Okuyanlar: 1 Ziyaretçi
![[Resim: 114ld.jpg]](http://b1112.hizliresim.com/s/c/114ld.jpg)