Heap Sort
Posted ewitt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Heap Sort相关的知识,希望对你有一定的参考价值。
#include <iostream.h> #define N 8 int a[]={0,39,21,40,92,29,11,32,9}; void Adjust(int i,int last) { int k=2*i; int t=a[i],tag=1; while(k<=last&&tag) { if(k<last&& a[k]>a[k+1]) k++; if(t>a[k]) { a[i]=a[k]; i=k; k=2*i; } else tag=0; } a[i]=t; } void disp( int n) { for (int i=0;i<=N;i++) cout<<a[i]<<‘\t‘; cout<<endl; } void HeapSort(int n) { int t; for(int i=n/2;i>=1;i--)//build heap; { Adjust(i,n); } while(n>1) { disp(8); t=a[1];//交换堆的第一与最后元素 a[1]=a[n]; a[n]=t; // disp(8);cout<<n; Adjust(1,n-1);//交换后第n个元素就不要考虑了 cout<<endl; n--; } } void main() { HeapSort(8); disp(8); }
以上是关于Heap Sort的主要内容,如果未能解决你的问题,请参考以下文章
排序算法:heap sort(含heap介绍,python)
1098. Insertion or Heap Sort (25)排序——PAT (Advanced Level) Practise
1098. Insertion or Heap Sort (25)排序——PAT (Advanced Level) Practise