常见排序算法c语言实现

更新时间:2023-06-02 10:49:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

排序算法,c语言实现 ,排序时间统计

常见的排序算法及详细的排序时间统计:

源代码:

#include "stdio.h"

#include "time.h"

#define N 10

int i,j,k;

insertsort(int a[],int n)

{

for(i=2;i<=n;i++)

{

}

}

bubblesort(int a[],int n) a[0]=a[i]; for(j=i-1;a[0]<a[j];j--) { } a[j+1]=a[0]; a[j+1]=a[j];

排序算法,c语言实现 ,排序时间统计

for (i=1;i<=n-1;i++)

{

}

}

selectionsort(int a[],int n)

{

for(i=1;i<=n;i++)

{k=i;

for(j=i+1;j<=n;j++)

{if(a[j]<a[k])

k=j;

}

if(i!=k)

{a[0]=a[k];

a[k]=a[i];

a[i]=a[0];

}}}

binsertsort(int a[],int n)

{int l,h,m;

for(i=2;i<=n;i++)

{a[0]=a[i];

l=1;

h=i-1;

while(l<=h)

{m=(l+h)/2;

if(a[0]<a[m])

h=m-1;

else

l=m+1;}

for(j=i-1;j>=h+1;j--)

a[j+1]=a[j];

a[j+1]=a[0];}}

} for(j=1;j<=n-i;j++) if(a[j]>a[j+1]) { a[0]=a[j]; a[j]=a[j+1]; a[j+1]=a[0];

排序算法,c语言实现 ,排序时间统计

void fuzhi(int a[],int b[])

{

int i=10;

for(i=0;i<10;i++)

a[i]=b[i];

}

main()

{/*int a[N+1];*/

long s;

time_t timep;

/* printf("请您输入数组的个元素值:\n"); for(i=1;i<=N;i++)

scanf("%d",&a[i]);

*/

int a[11]={-1,3,9,7,5,2,6,4,10,1,0}; int b[11]={-1,3,9,7,5,2,6,4,10,1,0}; printf("直接插入排序法:\n");

time (&timep);

printf("%s",asctime(gmtime(&timep))); for(s=0;s<10000000;s++)

{

fuzhi(a,b); insertsort(a,N);

}

time (&timep);

printf("%s",asctime(gmtime(&timep))); printf("排序后的结果如下:\n"); for(i=1;i<N;i++)

printf("%3d",a[i]);printf("\n"); printf("冒泡排序法:\n");

time (&timep);

printf("%s",asctime(gmtime(&timep))); for(s=0;s<10000000;s++)

{

fuzhi(a,b);

bubblesort(a,N);

}

time (&timep);

printf("%s",asctime(gmtime(&timep))); printf("排序后的结果如下:\n");

排序算法,c语言实现 ,排序时间统计

for(i=1;i<N;i++)

printf("%3d",a[i]);printf("\n"); printf("选择排序法:\n");

time (&timep);

printf("%s",asctime(gmtime(&timep))); for(s=0;s<10000000;s++)

{

fuzhi(a,b);

selectionsort(a,N);

}

time (&timep);

printf("%s",asctime(gmtime(&timep))); printf("排序后的结果如下:\n"); for(i=1;i<N;i++)

printf("%3d",a[i]);printf("\n"); printf("折半快速插入排序法:\n"); printf("排序后的结果如下:\n"); time (&timep);

printf("%s",asctime(gmtime(&timep))); for(s=0;s<10000000;s++)

{

fuzhi(a,b);

binsertsort(a,N);

}

time (&timep);

printf("%s",asctime(gmtime(&timep))); for(i=1;i<N;i++)

printf("%3d",a[i]);printf("\n");

getch();}

本文来源:https://www.bwwdw.com/article/waz1.html

Top