/ Published in: C++
URL: http://en.wikipedia.org/wiki/Heapsort
Expand |
Embed | Plain Text
int save,i,j,v; for(i=n-1;i>=0;i--){ save=i; v=data[i]; for(;;){ j=save+save+1; if(j>n-1){ break; } if( (j!=n-1)&&(data[j+1]>data[j]) ){ j++; } if(v>=data[j]){ break; } data[save]=data[j]; save=j; } data[save]=v; } for(i=n-1;i>0;i--){ swap(data[0],data[i]); save=0; v=data[0]; for(;;){ j=save+save+1; if(j>i-1){ break; } if( (j!=i-1)&&(data[j+1]>data[j]) ){ j++; } if(v>=data[j]){ break; } data[save]=data[j]; save=j; } data[save]=v; }
You need to login to post a comment.
