程序博客网 > 淘宝照片手机可以拍摄
来源:互联网 发布:淘宝照片手机可以拍摄 编辑:程序博客网 时间:2024/05/24 06:28
#include<iostream>using namespace std;#define MAX 100int a[MAX]={1,2,3,4,5,6,7,8};// void sitf_up(int *A,int i){ bool done=false; if(i!=1){ while(!done && i!=1){ if(A[i]>A[i/2])swap(A[i],A[i/2]); else done=true; i=i/2; } }}void sitf_down(int *A,int n,int i){ bool done=false; if(2*i<=n){ i=2*i; while(!done && i<=n){ if(i+1<=n &&A[i]<A[i+1])i=i+1; if(A[i]>A[i/2])swap(A[i],A[i/2]); else done=true; i=2*i; } }}void delete_element(int *A,int &n,int i) { int x=A[i],y=A[n]; n--; if(i<=n){ A[i]=y; if(y>=x)sitf_up(A,i); else sitf_down(A,n,i); }}void insert(int *A,int &n,int x){ n=n+1; A[n]=x; sitf_up(A,n);}void delete_max(int *A,int &n,int i){ }void print(int n){ for(int i=1;i<=n;++i) cout<<a[i]<<" "; cout<<"/n--------------------/n";}void make_heap(int *A,int n){ A[n]=A[0]; print(n); for(int i=n/2;i>=1;--i){ sitf_down(A,n,i); print(n); } }void heap_sort(int *A,int n){ int length=1; make_heap(A,n); for(int i=n;i>1;--i){ swap(A[i],A[1]); sitf_down(A,i-1,1); }}int main(int argc, char *argv[]){ int n=8; heap_sort(a,n); print(n); return 0;}