②2017=5.13-7.1
阿新 • • 發佈:2017-05-13
解析 display pla 部分 using lap code 需要 print
1/50
這裏都沒有發題目,隨手解析,大部分是供自己思考反思作用,思路、題目等有不少來自各種資料。大部分有附代碼,需要題目自行搜索引擎。
我又開坑啦,考慮到還是以文化課為重,這次五十題給了很多時間,希望能及時刷完…
目前已涉及的算法有:堆。
1.建堆+堆排序
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 using namespace std; 5 int h[101]; 6 int n; 7 void swap(int建堆+堆排序x,int y) 8 { 9 int t; 10 t=h[x]; 11 h[x]=h[y]; 12 h[y]=t; 13 } 14 void siftdown (int i) 15 { 16 int t,flag=0; 17 while (i*2<=n && flag==0) { 18 if (h[i]>h[i*2]) t=i*2; 19 else t=i; 20 if (i*2+1<=n) { 21 if (h[t]>h[i*2+1]) t=i*2+1; 22 } 23 if (t!=i) { 24 swap(t,i); 25 i=t; 26 } 27 else flag=1; 28 } 29 } 30 void creat() 31 { 32 int i; 33 for (i=n/2; i>=1; i--) siftdown(i); 34 } 35 int deletemax() 36 { 37 int t; 38 t=h[1]; 39 h[1]=h[n]; 40 n--;41 siftdown(1); 42 return t; 43 } 44 int main() 45 { 46 int i,num; 47 scanf("%d",&num); 48 for (i=1; i<=num; i++) scanf("%d",&h[i]); 49 n=num; 50 creat(); 51 for (i=1; i<=num; i++) printf("%d ",deletemax()); 52 getchar(); 53 return 0; 54 }
修建中…
②2017=5.13-7.1