• 大小: 116KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: C/C++
  • 标签: 堆排序  

资源简介

根据严蔚敏数据结构书上的伪码实现的堆排序算法。用户输入随机数的个数,然后程序生成相应个数的随机数,同时进行堆排序,并输出排序后的结果。VC++6.0编译测试通过。

资源截图

代码片段和文件信息

#include 
#include 
#include 

void HeapSort(int *Lint length);
void ShowInfo(int *Lint length);
void MAXHEAPIFY(int *Lint nokint length);
FILE *fp;
int main()
{
int ij;
int number;
long startend;

int *L;
if((fp=fopen(“sort.txt““w“))==NULL)
    { 
        printf(“cannot open file“);
        exit(0);
    }
printf(“请输入生成随机数的个数:“);
scanf(“%d“&number);
L = (int *)malloc((number+1) *sizeof(int));

//1.产生随机数
srand((int)time(0));   /*设置随机数种子*/
fprintf(fp“产生的随机数是:\n“);
for(i=1;i<=number;i++)   //注意0号单元没有使用
{
j=rand();
fprintf(fp“%-8d“j);
L[i] = j;
}
printf(“\n“);

start = clock();

//测试的程序段


//2.堆排序

HeapSort(Lnumber);

fprintf(fp“\n排序的结果是:\n“);
ShowInfo(Lnumber);

end = clock();



fprintf(fp“\n程序运行时间 :%ld 毫秒\n“end-start);//单位:毫秒

fclose(fp);

printf(“正在打开文件……\n“);
system( “notepad sort.txt“ );
return 0;
}

void HeapSort(int *Lint length){
int i;
//建立大顶堆
for( i = length/2; i > 0; i--){
MAXHEAPIFY(Lilength);
}

for( i = length; i>1; i--){

//交换堆顶与尾部元素
int swap;
swap = L[1];
L[1] = L[i];
L[i] = swap;
//调整大顶堆
MAXHEAPIFY(L1i-1);

}


}
void MAXHEAPIFY(int *Lint nokint length){
int key;
int j;
key = L[nok];
for( j = 2 * nok; j <= length; j*=2){
if( j < nok && L[j] > L[j +1] ) j++; //j为key较小的记录的下标 ***
if( key > L[j] ) break; //***
L[nok] = L[j];
nok = j;
}
L[nok] = key;


}

void ShowInfo(int *Lint length){

int t;
for(t = 1;t <= length; t ++){
fprintf(fp“%-8d“L[t]);
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     188463  2009-10-06 23:44  heapsort\Debug\heapsort.exe

     文件     525312  2009-10-06 23:44  heapsort\Debug\heapsort.pdb

     文件       7649  2009-10-06 23:44  heapsort\Debug\main.obj

     文件      53248  2009-10-06 23:44  heapsort\Debug\vc60.pdb

     文件       4302  2009-10-06 22:09  heapsort\heapsort.dsp

     文件        539  2009-10-06 22:09  heapsort\heapsort.dsw

     文件      41984  2009-10-06 23:44  heapsort\heapsort.ncb

     文件      53760  2009-10-06 23:44  heapsort\heapsort.opt

     文件       1284  2009-10-06 23:44  heapsort\heapsort.plg

     文件       1732  2009-10-06 23:43  heapsort\main.c

     文件        154  2009-10-06 23:44  heapsort\sort.txt

     目录          0  2009-10-07 00:19  heapsort\Debug

     目录          0  2009-10-06 23:44  heapsort

----------- ---------  ---------- -----  ----

               878427                    13


评论

共有 条评论