From 8d80276fd81c834aad524ca8f5a7641eacaee0b5 Mon Sep 17 00:00:00 2001 From: pn43tqvrm <2516333959@qq.com> Date: Sat, 19 Feb 2022 16:11:03 +0800 Subject: [PATCH] =?UTF-8?q?Add=20=E5=A0=86=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 堆排序 | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 堆排序 diff --git a/堆排序 b/堆排序 new file mode 100644 index 0000000..e0100ce --- /dev/null +++ b/堆排序 @@ -0,0 +1,61 @@ +//堆排序 + +void swap(int& a,int &b) +{ + int tmp = a; + a = b; + b = tmp; +} +void siftAdjust(int elem[],int low,int high) +{ + for(int f=low,i=2*low+1;i<=high;i=2*i+1) + { + if(ielem[i]) + { + break; + } + swap(elem[f],elem[i]); + f = i; + } + } +void heapSort(int elem[],int n) +{ + int i; + for(i=(n-2)/2;i>=0;i--) + { + + siftAdjust(elem,i,n-1); + } + for(int i=n-1;i>0;i--) + { + swap(elem[0],elem[i]); + + siftAdjust(elem,0,i-1); + + } +} + int main(void) +{ + int n = 10; + int arr[10] = {0}; + for(int i=0;i