堆排序

来源:互联网 发布:nb iot 知乎 编辑:程序博客网 时间:2024/06/01 18:23

刚学的堆排序,想着就码出来了,反正先存个档。


template <typename T>void sink(T a[],int N,int k){while(2*k<=N){int j=2*k;if(j < N && a[j]<a[j+1])++j;if(a[k] > a[j])break;swap(a[k],a[j]);k=j;}}template <typename T>void HeapSort(T a[],int N){for(int i=N/2;i>=1;--i)sink(a,N,i);while(N>1){swap(a[1],a[N--]);sink(a,N,1);}}


0 0
原创粉丝点击