Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void adjust(int *ary,int i,int n){
- int x=ary[i];
- int j=2*i;
- while(j<=n){
- if(j<n)
- if(ary[j]<ary[j+1])
- j++;
- if(x>=ary[j])
- break;
- else{
- ary[j/2]=ary[j];
- j*=2;
- }
- }
- }
- void swap(int *a,int *b){*a^=*b;*b^=*a;*a^=*b;}
- void hsort(int *ary,int n){
- int i;
- for(i=n/2;i>0;i--)
- adjust(ary, i, n);
- for(i=1;i<=n;i++){
- swap(&ary[1],&ary[n-i+1]);
- adjust(ary, 1, n-i);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment