时间管理语言各种排序方法及其所耗时间比较程序Word文档格式.docx

上传人:b****6 文档编号:18957351 上传时间:2023-01-02 格式:DOCX 页数:9 大小:15.25KB
下载 相关 举报
时间管理语言各种排序方法及其所耗时间比较程序Word文档格式.docx_第1页
第1页 / 共9页
时间管理语言各种排序方法及其所耗时间比较程序Word文档格式.docx_第2页
第2页 / 共9页
时间管理语言各种排序方法及其所耗时间比较程序Word文档格式.docx_第3页
第3页 / 共9页
时间管理语言各种排序方法及其所耗时间比较程序Word文档格式.docx_第4页
第4页 / 共9页
时间管理语言各种排序方法及其所耗时间比较程序Word文档格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

时间管理语言各种排序方法及其所耗时间比较程序Word文档格式.docx

《时间管理语言各种排序方法及其所耗时间比较程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《时间管理语言各种排序方法及其所耗时间比较程序Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。

时间管理语言各种排序方法及其所耗时间比较程序Word文档格式.docx

i<

n;

i++)

flag=0;

for(intj=n-1;

j>

=i;

j--)

if(r[j]<

r[j-1])

intt=r[j];

r[j]=r[j-1];

r[j-1]=t;

flag=1;

}

if(flag==0)

return;

//快速排序

voidquicksort(intr[],intleft,intright)

inti,j;

intswap;

i=left;

j=right;

swap=r[left];

while(i<

j)

while((i<

j)&

&

(swap<

r[j]))j--;

if(i<

r[i]=r[j];

i++;

(swap>

r[i]))i++;

r[j]=r[i];

j--;

r[i]=swap;

if(i>

left)

quicksort(r,left,i-1);

right)

quicksort(r,i+1,right);

//堆排序先建立堆

voidcreatheap(intr[],inti,intn)

intj;

intt;

t=r[i];

j=2*i;

while(j<

n)

if((j<

n)&

(r[j]<

r[j+1]))j++;

if(t<

r[j])

i=j;

elsej=n;

r[i]=t;

//堆排序

voidheapsort(intr[],intn)

for(inti=n/2;

i>

=0;

i--)

creatheap(r,i,n);

for(i=n-1;

t=r[0];

r[0]=r[i];

creatheap(r,0,i-1);

//二路归且

voidmerge(intr[],intr1[],intlow,intmid,inthigh)//进行二合壹的函数

inti=low,j=mid+1,k=low;

=mid)&

(j<

=high))

if(r[i]<

=r[j])

r1[k++]=r[i++];

else

r1[k++]=r[j++];

=mid)

=high)

voidmergepass(intr[],intr1[],intlength)//用来区分填入merge函数的变量计算式

inti=0,j;

while(i+2*length<

=N)

merge(r,r1,i,i+length-1,i+2*length-1);

i=i+2*length;

if(i+length-1<

N-1)

merge(r,r1,i,i+length-1,N-1);

for(j=i;

j<

N;

j++)

r1[j]=r[j];

voidmergesort(intr[])//二路且归总算法

intlength=1;

intr1[N+1];

while(length<

N)

mergepass(r,r1,length);

length=2*length;

mergepass(r1,r,length);

//进行输出

voidprint(intr[],intn)

for(inti=0;

=n-1;

if(i%10==0){cout<

<

endl;

cout<

r[i]<

setw(6);

//主函数

voidmain()

inti,j,k;

intr[N],a[N];

clock_tstart,finish;

doubleduration;

"

请选择排序方式,1、冒泡法;

2、快速排序法;

3、堆排序法;

4、二路且归法"

cin>

>

j;

srand((unsigned)time(NULL));

for(i=0;

a[i]=rand()%10000;

switch(j)

case

(1):

冒泡法"

;

start=clock();

M;

k=N-1;

while(k+1)

r[k]=a[k];

k--;

Bubblesort(r,N);

//冒泡法

finish=clock();

duration=(double)(finish-start)/1000;

print(r,N);

printf("

%fseconds\n"

duration);

}break;

case

(2):

快速排序法"

quicksort(r,0,N-1);

//快速排序法

case(3):

堆排序法"

heapsort(r,N);

//堆排序法

case(4):

二路且归法"

mergesort(r);

//二路且归法

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1