From 78e6cfd984a54f057b7bf55540935f77a648baa6 Mon Sep 17 00:00:00 2001 From: chenhongchao Date: Tue, 15 Dec 2020 18:43:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Heap.class" | Bin 0 -> 2367 bytes .../Heap.java" | 121 ++++++++++++++++++ .../Mian.class" | Bin 0 -> 844 bytes .../Mian.java" | 25 ++++ .../MergeK.class" | Bin 0 -> 1582 bytes .../MergeK.java" | 68 ++++++++++ 6 files changed, 214 insertions(+) create mode 100644 "\345\237\272\347\241\200\344\275\234\344\270\232/Heap.class" create mode 100644 "\345\237\272\347\241\200\344\275\234\344\270\232/Heap.java" create mode 100644 "\345\237\272\347\241\200\344\275\234\344\270\232/Mian.class" create mode 100644 "\345\237\272\347\241\200\344\275\234\344\270\232/Mian.java" create mode 100644 "\350\277\233\351\230\266\344\275\234\344\270\232/MergeK.class" create mode 100644 "\350\277\233\351\230\266\344\275\234\344\270\232/MergeK.java" diff --git "a/\345\237\272\347\241\200\344\275\234\344\270\232/Heap.class" "b/\345\237\272\347\241\200\344\275\234\344\270\232/Heap.class" new file mode 100644 index 0000000000000000000000000000000000000000..f724bd1cf8bd07f5b2c0a9ccd857ac5b54d35673 GIT binary patch literal 2367 zcmZuyU2qds7(F-HG(Rk~gqB*8Kq*j?6;cG+Dy1#Ig+d@`p<1BYO|#I&G^uF<;&We| z!AEBlb;dHzbbRm!mC`}PXL->_XMAM}Z@e?rdcNJ5fH0lxy?5_-zwey$oxQ#P&z*Y! zb|d45M?pJknNxmf3JsUc%VtN;%wOzCXD(UeC2me|Q^9j?kn^FzvxgNFr@rw*InV97 zy>{L%^>Hsgm>A}8u#mMv@M4vY5b71Y@x*Wt3afSa5s=v$9X`~_tVu@@0fqXMowrVw zCo@*@w3*3S3gJ{?+{_J|MO)UDms)AUo@U9E;O$|pY5N1ldd+M$h!{5bvHlqfLszFu z)})SBY-CiSOt?)choN2QI90UsrJ+*MGADZi*rX7YtgQp(TrPwy*y=|+p}rtmM;r+S z|CA)i<(V_?CUs)rQO!>0dUrg&drexq_{nzr(=hdQ8s^s;B!a@z^1oI z@PmbK7C-;+(XXFAxbxZK$KNl0^zGxj*ZnxctTpGj5*#QKh*b<>5Xb#E_H1Juk#wYR zf;2Cixw4hMAVLl%o|iI&0i?xDi2z2E+IX4R=Gg5H`HG z(0G%Z9<1eaEfa!YkjCRd9$tf$cnPb}?Cd#7xNhN!>9CH4h#Qe=scSqbQQa)iC`D$W z|A1(?Z62F%avhfUk+d~f$BiER!YmqZX=hr}i?`S1>^a2O{?jmPVaNV3m}7|~?fh{n=2 zbB3Mmem?i{;C|ZjfP=(vk5%QYCsHvcQ(=!Ir^Y7rIC3iNt(x@_+aLuq6sGYyR)|r1 zX;g3T9FB-s(PZRH?1}cxIbIIO93^R#^o&JMUBp{6+%Owv+(gAJN9xt_~Ns zJfpO_(;RV;uyJ3eogtR4w1otIuW|Y1|15H}#w6{Z=T%eS*E~gp?~%nMS>)KV%TF~X pRbk;_<6IU&n%!m5#>>k!p75!MZwWs3rB1~?Pv~JqY2@lP{{;>kmK*>8 literal 0 HcmV?d00001 diff --git "a/\345\237\272\347\241\200\344\275\234\344\270\232/Heap.java" "b/\345\237\272\347\241\200\344\275\234\344\270\232/Heap.java" new file mode 100644 index 0000000..57743b8 --- /dev/null +++ "b/\345\237\272\347\241\200\344\275\234\344\270\232/Heap.java" @@ -0,0 +1,121 @@ +import java.util.Arrays; + +public class Heap{ + private int[] heap; + private int SIZE; + private int count; + + + Heap(int size){ + SIZE = size; + // reference: https://stackoverflow.com/questions/34827626/cannot-be-cast-to-ljava-lang-comparable + heap = new int[SIZE]; + count = 0; + } +//小顶堆的实现 +//入堆函数 + public void add (int item){ + if(count >= SIZE){ + // throw new Exception("Heap Overflow"); + System.out.println("Heap Full");//满了 + return; + } + heap[count] = item; + count++; + shiftUp(heap, count - 1); + + } +//向下调整 + private static void shiftDown(int[] array, int size, int index) { + int parent = index; + int child = parent * 2 + 1; + while (child < size) { + if (child + 1 < size && array[child + 1] > array[child]) { + child = child + 1; + } + if (array[child] < array[parent]) { + swap(array, parent, child); + } else { + break; + } + parent = child; + child = parent * 2 + 1; + } + } + + //向上调整 + private void shiftUp(int[] array, int index) { + int child = index; + int parent = (child - 1) / 2; + while (child > 0) { + if (heap[parent]>heap[child]) { + swap(heap, parent, child); + }else { + break; + } + child = parent; + parent = (child - 1) / 2; + } + } + + //交换 + private static void swap(int[] array, int x, int y) { + int temp = array[x]; + array[x] = array[y]; + array[y] = temp; + } + + +//出堆函数 + public void delete(int item){ + if (count == 0) { + System.out.println("count=0,heap是空的"); + } + for (int i = 0; i < heap.length; i++) { + if (heap[i]==item) { + for(int n =i;nheap[j]){ + int temp=heap[i]; + heap[i]=heap[j]; + heap[j]=temp; + } + } + } + +} + + + } diff --git "a/\345\237\272\347\241\200\344\275\234\344\270\232/Mian.class" "b/\345\237\272\347\241\200\344\275\234\344\270\232/Mian.class" new file mode 100644 index 0000000000000000000000000000000000000000..629663e7878c6a7a92d8bc3d2e406df1fbebe52b GIT binary patch literal 844 zcmZuwOKTHh6g`vIB;#nONfTf75g#>awBxH{O; z5z$~Rs3*#9s8-#+<1DznwImOIyJI<9|T zISp4sved4sMn(Ca#D9{J;IX&FX(icJNv24PWkCl;5JPh!eREcJ7ks~ zZuZ*tU1{TTS2c@q9ARVc`O1$s@B6RU`Y%>zetv#y;20)!9M_N~?6 zy+$9MTu1!F;Ilz1pQUsMtvM{9-^nO}T^M0Tn!j;mh`#y>*1Tn`^I;UML>K9T6(3k# z?BE!aQ&dbBdp=@+GTX(`L0SH9=A>j;{4X&ji7rk{!6vj@NOENi1|e98BST2zjIsnf zL68N)v1GJ#$Fm9>(whX*^<=!xtv>GD8YD$G-)fGmmLpAVG~2M1q;$ DCj7A9 literal 0 HcmV?d00001 diff --git "a/\345\237\272\347\241\200\344\275\234\344\270\232/Mian.java" "b/\345\237\272\347\241\200\344\275\234\344\270\232/Mian.java" new file mode 100644 index 0000000..74b9877 --- /dev/null +++ "b/\345\237\272\347\241\200\344\275\234\344\270\232/Mian.java" @@ -0,0 +1,25 @@ + +public class Mian { + + public static void main(String[] args) { + // TODO 自动生成的方法存根 + Heap aa = new Heap(10); + aa.add(9); + aa.add(8); + aa.add(7); + aa.add(5); + aa.add(3); + aa.add(2); + aa.print(); + System.out.println("删除数据8:"); + aa.delete(8); + aa.print(); + System.out.println("删除数据5:"); + aa.delete(5); + aa.print(); + System.out.println("实现堆排序"); + aa.bubbleSort(); + aa.print(); + } + +} diff --git "a/\350\277\233\351\230\266\344\275\234\344\270\232/MergeK.class" "b/\350\277\233\351\230\266\344\275\234\344\270\232/MergeK.class" new file mode 100644 index 0000000000000000000000000000000000000000..c44b5a92923ea91223bedf9c22af300e81fc7f93 GIT binary patch literal 1582 zcmZux-A`L(9Dd%O&z4eJ;4n++956R1A9aJ(Sq2*}n&8T+vXC^ygae+yVWov~m@XQP z2{$_9wVB>9FSu1NCNYTj`fn^|-png69edvQfX>*oeLsHh@9TM1k5Xb%@3vow1L5S z0sVUYJue0g(Krm40&OL~=H1+0U-BBa+@-1~&|a!9yVZHO;miB6Q4d!AEdi(0r1XS< zu`Zhsum=`q7G?$)W?0E>G%g54PR zpy9de6EVDm^A^sXL~jRvH9y^GxOcbW7{DNb1aLC7Qu61) zeffAfjvizc?JE?jqe+%fld*6cXK5uG)d&w1A~sjwZY+Cm_;LO7u=29kFdYzA%YlJ`3%@-;TjJexVQ2al^AGYu=s?@Y}$5mhm%8xQ$5+m zgIH153WioNwSu*We9kdOha7YCTR3UmvE;S9V~HI@?4ey++aE$CQ;J=Nm~DoeQ2up8Ztb$@D?YI1iNlSlAjKw(1muSc{+eW z3ZWKC)00Rf>;%Q&%!Fd#OD5DA(w8}i&1zG7h!1CTS(2-XY-ac9uOD!FcpqmUA}3`I zsp@7yaME?oL6l^)aX&>udT~j?%7qz8VhF2GHOT?QX?mv=tdwe3Q|-nO`5RH$q|JO6 zaPfFh`WYby<(_pAt7v+;qMPN4VV5gr(kz$$F&ZaEt30cW^wQ~3F_KZ~+fu%%%na0% zmNd6YbE;g_hlp*gXpE$FxtnPtZOVg1)M+b(&13r|!cSZFK3@5E)<+f8%T(u8s#(M| zCQ!j7b)Uj2r(zS=@DZ&$oQ}_N{W-nwF``IV4(=%B1>;?%e1!gQGEa&`S4hJZrS~HL bawd5)n75zVQ>1^B#7TNBQgxNNBDnSp?Zp~* literal 0 HcmV?d00001 diff --git "a/\350\277\233\351\230\266\344\275\234\344\270\232/MergeK.java" "b/\350\277\233\351\230\266\344\275\234\344\270\232/MergeK.java" new file mode 100644 index 0000000..09d3c16 --- /dev/null +++ "b/\350\277\233\351\230\266\344\275\234\344\270\232/MergeK.java" @@ -0,0 +1,68 @@ +package 进阶作业; + +import java.util.Arrays; + +/** + 合并K个有序数组 + */ +public class MergeK { + + public static int[] merge(int[] arr1, int[] arr2){ + int length1 = arr1.length; + int length2 = arr2.length; + + int[] arr = new int[length1 + length2]; + int j = 0; + int k = 0; + int i = 0; + while (j < length1 && k < length2){ + if (arr1[j] <= arr2[k]){ + arr[i] = arr1[j]; + i++; + j++; + }else { + arr[i] = arr2[k]; + i++; + k++; + } + } + + //把还没有进行合并的元素直接添加到新数组的后面,可能出现一个数组有剩,另一个数组合并完毕 + while (j < length1){ + arr[i] = arr1[j]; + i++; + j++; + } + while (k < length2){ + arr[i] = arr2[k]; + i++; + k++; + } + + return arr; + } + //2.求⼀组动态数据集合的最⼤Top K + public static void topK(int[] merge,int k) { + int[] toparr = new int[k]; + for (int i = 0; i < k; i++) { + toparr[i]=merge[i]; + + } + System.out.println(Arrays.toString(toparr)); + + } +//测试 + public static void main(String[] args) { + int[] arr1 = {1,3,5,6}; + int[] arr2 = {1,2,5,7}; + int[] arr3 = {3,6,9,11}; + int[] arr4 = {5,7,13,17}; + + int[] merge1 = merge(arr1, arr2); + int[] merge2 = merge(arr3, arr4); + int[] merge = merge(merge1, merge2); + System.out.println(Arrays.toString(merge)); + System.out.println("执行topK:"); + MergeK.topK(merge, 5); + } +} \ No newline at end of file -- Gitee From 5b311fd1cfa06bc2a456d15ad84f7e20c11c086d Mon Sep 17 00:00:00 2001 From: chenhongchao Date: Wed, 16 Dec 2020 09:19:02 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .classpath | 6 + .project | 17 +++ .settings/org.eclipse.core.resources.prefs | 2 + .../.gitignore" | 2 + .../Heap.class" | Bin 2367 -> 2094 bytes .../Heap.java" | 39 +++--- .../Mian.class" | Bin 844 -> 575 bytes .../Mian.java" | 20 ++- .../.gitignore" | 2 + .../Heap.java" | 121 ++++++++++++++++++ .../Mian.java" | 26 ++++ 11 files changed, 203 insertions(+), 32 deletions(-) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 "\345\237\272\347\241\200\344\275\234\344\270\232/.gitignore" create mode 100644 "\345\237\272\347\241\200\344\275\234\344\270\232/\345\244\247\351\241\266\345\240\206/.gitignore" create mode 100644 "\345\237\272\347\241\200\344\275\234\344\270\232/\345\244\247\351\241\266\345\240\206/Heap.java" create mode 100644 "\345\237\272\347\241\200\344\275\234\344\270\232/\345\244\247\351\241\266\345\240\206/Mian.java" diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..f0c32f9 --- /dev/null +++ b/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..1fe9fc9 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + lec07-heap + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git "a/\345\237\272\347\241\200\344\275\234\344\270\232/.gitignore" "b/\345\237\272\347\241\200\344\275\234\344\270\232/.gitignore" new file mode 100644 index 0000000..7fd76de --- /dev/null +++ "b/\345\237\272\347\241\200\344\275\234\344\270\232/.gitignore" @@ -0,0 +1,2 @@ +/Heap.class +/Mian.class diff --git "a/\345\237\272\347\241\200\344\275\234\344\270\232/Heap.class" "b/\345\237\272\347\241\200\344\275\234\344\270\232/Heap.class" index f724bd1cf8bd07f5b2c0a9ccd857ac5b54d35673..4e4fad222cf699818455ca553964f1d9558c9591 100644 GIT binary patch delta 510 zcmZ9H%}W$<7{@=qnU$Hwf!&trW!Y)5Fws5idMH9nG;7p0U)nXz&9@ekEfJBBu3o%| zM2De6=E3dKDaou!B-~C>{ssO4vIHLb2PA#gs6&^B@ALlomZR$tYxno|4seBs8&+Iv zteJcIWOm-^6yZ8F+Dgh`$d~O^!m$MeaxfZ#-hpOu0qvWc;svbx#xe^T1}5(oBNFTwR(f|z^0QX zi_47JG!mBiX+Ni5SH|WGy+x@vn?FJaYN1RGx)A4*A8}Tw{eT;73#ixI-f~T9Q8yJ| zBYC2#p*j|Nlp09pPsAsjzg2gO_C-y()qJOP^ld|~>YSC>z$uB{81xV(gCl+t^pd8} zqlJEPks&KK&dFHa9~{mTlT5%!VWK!q2RB4%vW6TCg%1g-W=&e1e#uCvoBmhB8TRtR z(fyge=s-X=U??EJs8qblT{_wmdjX^Wqm2k!UT%*PVT?13<1)!r(H%_DMbS^17cY$e S`);C}huG?pJf9F6jmcxw=xR>@ delta 775 zcmYk4%}*0i6vfY*nbKMYixpHd0|H_LT?{eN7=?lrZTTn^Mbsi7G-&)NEfO%U?52r- z!0cSvgrqwYtd5OF+_=$=TmJ)1+_)x<^}Hz&Hurtqci-=v`(8JH4*I|S{jdYzEYjP4 zLunFO0ngg{!|a9+S8Yq_5OI4_F&oA(;l;R}Q(DyoChZqWPg@L09e(ura7{pT`Vqs7 zjvJV@zbFH~7;fpfjg;+GLtS@tjG)ht(^$~aivaT<3HZ~S>2&7aOm2O{j;e#gSAMQu z5Mrxb(SD2kFL1xPk;`^BXiHYIpbB@f zqpcKcKf@{B*H+%uvt%)~g5iQ9OnG6aSaY`dii%^578)7j@M1KN0LIaR33MQVQ<%gV zj>DM37?POf*)p{rXL`7fi4$n!ioh)6gTN6?Bg&bAPMpML&Q$dCycrFFDl}2WVbQ#c zPKCK6d`&>-X_?hjj`lNe)8i{r?_dcbiE3C8dhijklv%;(drSqV9b9*C)4^Op2t!IM z)_yR@!Ti3a5Du|iikjw#Fwf@~(27NvSi(8ZFX28r_rU(+?aD8@xDt}EzAALlO{}~B z;l2`1_9P*pqK3A_Ui8=5WHhZUxXv5akh@#oOu9pRa?f)@e&6T)bbxfzMa{7BtMnoZ z137eKjeb5M>MBt)?8nmst|#_fSJ)NlwP1zw6enHp#!(DNA+GBIc&hNw^ajzZ?DF3V J>Ic)7{{fKXiWUF> diff --git "a/\345\237\272\347\241\200\344\275\234\344\270\232/Heap.java" "b/\345\237\272\347\241\200\344\275\234\344\270\232/Heap.java" index 57743b8..9c11512 100644 --- "a/\345\237\272\347\241\200\344\275\234\344\270\232/Heap.java" +++ "b/\345\237\272\347\241\200\344\275\234\344\270\232/Heap.java" @@ -1,4 +1,4 @@ -import java.util.Arrays; + public class Heap{ private int[] heap; @@ -30,7 +30,7 @@ public class Heap{ int parent = index; int child = parent * 2 + 1; while (child < size) { - if (child + 1 < size && array[child + 1] > array[child]) { + if (child + 1 < size && array[child + 1] < array[child]) { child = child + 1; } if (array[child] < array[parent]) { @@ -73,10 +73,9 @@ public class Heap{ } for (int i = 0; i < heap.length; i++) { if (heap[i]==item) { - for(int n =i;nheap[j]){ - int temp=heap[i]; - heap[i]=heap[j]; - heap[j]=temp; - } - } - } - -} - - +////实现堆排序 +// public void bubbleSort(){//冒泡排序算法 +// for(int i=0;iheap[j]){ +// int temp=heap[i]; +// heap[i]=heap[j]; +// heap[j]=temp; +// } +// } +// } +// +//} +// +// } diff --git "a/\345\237\272\347\241\200\344\275\234\344\270\232/Mian.class" "b/\345\237\272\347\241\200\344\275\234\344\270\232/Mian.class" index 629663e7878c6a7a92d8bc3d2e406df1fbebe52b..274ea26a872c68344f0d3c8eee9c1df2425b0a82 100644 GIT binary patch delta 224 zcmXAjyAA=JRmMYEN}rO+toynx3PJQl}Wz* z|NJwPc{|UzdVOyXU`TJTKAu8TOH;?UaMs}_+=hp@b=;kZVawR!j$UbXrLYX#3&p@O z(8-8@oijQSHBu3^;f1nUs2XvWLpDk{CL?r2C&=OAlcXZ9MT$OY0?7wt8BHXf%5O9B Y%<&|K(*GkGG{q^&TePvHI^u1*KgZr5&j0`b delta 493 zcmZvZy-OTX6vcmU)tPa!(Q$P(pfP?VeyuuwYY+=dMMSa?&_dWvhDBL-WgP`8J4q8o zAw?|2!dlc~112PWu(Y$@4OWtWK)i26ix3_h?mO?Cd)|HTSLvl;|GvBU2@LUe&%W9! zr-4S3mkMV&v5|1oiA>6kZ?5^?N|;wPDN3^Iz9Kpk94}?vx!h95kNY_fA8`5c!DMyX^%6q8gjC8k-bc}EQkL|GJ9 ak~(o9RWJjC@{>rPd4?H5$r_b?h_QR;Xmtkw diff --git "a/\345\237\272\347\241\200\344\275\234\344\270\232/Mian.java" "b/\345\237\272\347\241\200\344\275\234\344\270\232/Mian.java" index 74b9877..8eb4fdd 100644 --- "a/\345\237\272\347\241\200\344\275\234\344\270\232/Mian.java" +++ "b/\345\237\272\347\241\200\344\275\234\344\270\232/Mian.java" @@ -4,22 +4,18 @@ public class Mian { public static void main(String[] args) { // TODO 自动生成的方法存根 Heap aa = new Heap(10); - aa.add(9); - aa.add(8); - aa.add(7); aa.add(5); aa.add(3); - aa.add(2); - aa.print(); - System.out.println("删除数据8:"); - aa.delete(8); - aa.print(); - System.out.println("删除数据5:"); - aa.delete(5); + aa.add(9); + aa.add(6); + aa.add(15); + aa.add(4); + aa.add(11); + aa.add(16); aa.print(); - System.out.println("实现堆排序"); - aa.bubbleSort(); + aa.delete(5); aa.print(); + } } diff --git "a/\345\237\272\347\241\200\344\275\234\344\270\232/\345\244\247\351\241\266\345\240\206/.gitignore" "b/\345\237\272\347\241\200\344\275\234\344\270\232/\345\244\247\351\241\266\345\240\206/.gitignore" new file mode 100644 index 0000000..7fd76de --- /dev/null +++ "b/\345\237\272\347\241\200\344\275\234\344\270\232/\345\244\247\351\241\266\345\240\206/.gitignore" @@ -0,0 +1,2 @@ +/Heap.class +/Mian.class diff --git "a/\345\237\272\347\241\200\344\275\234\344\270\232/\345\244\247\351\241\266\345\240\206/Heap.java" "b/\345\237\272\347\241\200\344\275\234\344\270\232/\345\244\247\351\241\266\345\240\206/Heap.java" new file mode 100644 index 0000000..0586ce0 --- /dev/null +++ "b/\345\237\272\347\241\200\344\275\234\344\270\232/\345\244\247\351\241\266\345\240\206/Heap.java" @@ -0,0 +1,121 @@ +package 大顶堆; + + +public class Heap{ + private int[] heap; + private int SIZE; + private int count; + + + Heap(int size){ + SIZE = size; + // reference: https://stackoverflow.com/questions/34827626/cannot-be-cast-to-ljava-lang-comparable + heap = new int[SIZE]; + count = 0; + } +//大顶堆的实现 +//入堆函数 + public void add (int item){ + if(count >= SIZE){ + // throw new Exception("Heap Overflow"); + System.out.println("Heap Full");//满了 + return; + } + heap[count] = item; + count++; + shiftUp(heap, count - 1); + + } +//向下调整 + private static void shiftDown(int[] array, int size, int index) { + int parent = index; + int child = parent * 2 + 1; + while (child < size) { + if (child + 1 < size && array[child + 1] > array[child]) { + child = child + 1; + } + if (array[child] > array[parent]) { + swap(array, parent, child); + } else { + break; + } + parent = child; + child = parent * 2 + 1; + } + } + + //向上调整 + private void shiftUp(int[] array, int index) { + int child = index; + int parent = (child - 1) / 2; + while (child > 0) { + if (heap[parent]>heap[child]) { + swap(heap, parent, child); + }else { + break; + } + child = parent; + parent = (child - 1) / 2; + } + } + + //交换 + private static void swap(int[] array, int x, int y) { + int temp = array[x]; + array[x] = array[y]; + array[y] = temp; + } + + +//出堆函数 + public void delete(int item){ + if (count == 0) { + System.out.println("count=0,heap是空的"); + } + for (int i = 0; i < heap.length; i++) { + if (heap[i]==item) { + heap[i]=heap[count-1]; + count--; + shiftDown(heap, count,0); + } + + } + + } + + +//打印堆 + public void print(){ + if (count == 0) { + return ; + } + System.out.println("heap中有这些数据:"); + for (int i = 0; i heap[j]){ +// int temp=heap[i]; +// heap[i]=heap[j]; +// heap[j]=temp; +// } +// } +// } +// +//} +// +// + } diff --git "a/\345\237\272\347\241\200\344\275\234\344\270\232/\345\244\247\351\241\266\345\240\206/Mian.java" "b/\345\237\272\347\241\200\344\275\234\344\270\232/\345\244\247\351\241\266\345\240\206/Mian.java" new file mode 100644 index 0000000..4ecb714 --- /dev/null +++ "b/\345\237\272\347\241\200\344\275\234\344\270\232/\345\244\247\351\241\266\345\240\206/Mian.java" @@ -0,0 +1,26 @@ +package 大顶堆; + +public class Mian { + + public static void main(String[] args) { + // TODO 自动生成的方法存根 + Heap aa = new Heap(10); + aa.add(5); + aa.add(3); + aa.add(9); + aa.add(6); + aa.add(15); + aa.add(4); + aa.add(11); + aa.add(16); + aa.print(); + aa.delete(16); + aa.print(); + aa.delete(15); + aa.print(); + aa.delete(11); + aa.print(); + + } + +} -- Gitee