堆排序-创新互联

#include
void Show(int  arr[], int n)
{
    int i;
    for ( i=0; ia[i])//根比左右都大,跳出循环
			break;
        else{
			a[start] = a[i];//把孩子子树中大的值放在父节点
			start = i;
		}
    }
    a[start] = temp;
}
int* HeapBuild(int array[], int length)
{
	int i;
    for ( i = length / 2 - 1; i >= 0; i--)
    {
        HeapAdjust(array, i, length);
    }
    return array;
}
// 堆排序算法
int* HeapSort(int a[],int length){
	int i;
	a = HeapBuild(a,length);
	for(i = length-1;i>0;i--){
		Swap(&a[0],&a[i]);
		HeapAdjust(a,0,i);
	}
	return a;
}
int main()
{   //测试数据
	int *a;
    int arr_test[10] = { 8, 4, 2, 3, 5, 1, 6, 9, 0, 7 };
	Show(arr_test,10);
	a = HeapSort(arr_test,10);
	Show(a,10);
    return 0;
}

优化:
#include 
#include 
int * DuiPaixu(int a[],int n){
  int end = n,i,t,x,y;
  while(end >= 1){
      while(1){
           int flag = 0;
           i=end/2;
           while(i > 0){
               if(a[i] < a[2*i]){
                 t = a[i];
                 a[i] = a[2*i];
                 a[2*i] = t;
                 flag = 1;
               }
               if(2*i+1 <= end&&a[i] < a[2*i+1]){
                 x = a[i];
                 a[i] = a[2*i+1];
                 a[2*i+1] = x;
                 flag = 1;
               }
               i--;
           }
           if(!flag)
               break;
      }        
      y = a[1];
      a[1] = a[end];
      a[end] = y;
      end--;    
  }
  return a;
}
void Print(int a[],int n){
    int i;
    for(i=1;i<=n;i++){
        printf("%5d",a[i]);
    }
}
int main(void){
    int n,i;
    int * a;
    printf("请输入数组长度n=  ");
    scanf("%d",&n);
    a=(int*)malloc(n*sizeof(int));
    printf("请输入数组元素: ");
    for(i=1;i<=n;i++){
        scanf("%d",&a[i]);
    } 
    a = DuiPaixu(a,n);
    Print(a,n);
    return 0;
}

做网站、网站设计中从网站色彩、结构布局、栏目设置、关键词群组等细微处着手,突出企业的产品/服务/品牌,帮助企业锁定精准用户,提高在线咨询和转化,使成都网站营销成为有效果、有回报的无锡营销推广。创新互联公司专业成都网站建设十余年了,客户满意度97.8%,欢迎成都创新互联客户联系。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:堆排序-创新互联
链接分享:http://myzitong.com/article/djeoes.html