亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于合并石子的哈夫曼樹算法,相鄰兩堆石子可交換,不太理解這個代碼的排序,

關于合并石子的哈夫曼樹算法,相鄰兩堆石子可交換,不太理解這個代碼的排序,

C
weibo_殤雨916_0 2016-05-03 14:47:59
#include?<stdio.h> int?split(int?A[],int?low,int?high) { ?int?i=low,k; ?int?temp; ?for(k=low+1;k<=high;k++) ??{ ??if(A[k]<A[low]) ??{ ???i++; ???if(i!=k) ????temp=A[i],A[i]=A[k],A[k]=temp; ??}} ?temp=A[i],A[i]=A[low],A[low]=temp; ?return?i; } void?quick_sort(int?A[],int?low,int?high) { ?int?k; ?if(low<high) ?{ ??k=split(A,low,high); ??quick_sort(A,low,k-1); ??quick_sort(A,k+1,high); ?} } int?main() { ?int?n,*A,i,j,k,l,s,a[2],sum; ?while(scanf("%d",&n)!=EOF) ?{ ??A=new?int[2*n+1]; ??for(i=0;i<n;i++) ???scanf("%d",&A[i]); ??quick_sort(A,0,n-1); ??i=0,j=k=n; ??sum=0; ??for(s=1;s<=n-1;s++) ??{ ???for(l=0;l<=1;l++) ???{ ????if(i<n) ????{ ?????if(j<k?&&?A[j]<A[i]) ??????a[l]=A[j++]; ?????else ??????a[l]=A[i++]; ?????continue; ????} ????else ?????a[l]=A[j++]; ???} ???sum+=a[0]+a[1]; ???A[k++]=a[0]+a[1]; ??} ??printf("%d\n",sum); ??delete[]?A; ?} ?return?0; }
查看完整描述

目前暫無任何回答

  • 0 回答
  • 0 關注
  • 1514 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號