为什么测试快速排序运行时间总为0,代码如下 - 爱问答

(爱问答)

为什么测试快速排序运行时间总为0,代码如下

#include <stdio.h>#include <stdlib.h>#include <time.h>#define RANDNUM 10000 //随机数的个数typedef struct{  int key;}ElemType;//冒泡排序void BubbleSort(ElemType a[], int n) {      int i,j;       ElemType temp;       for(i=1;i<n;i++)       {           for(j=n-1;j>=i;j--)           {               if(a[j+1].key<a[j].key)               {                   temp.key=a[j+1].key;                   a[j+1].key=a[j].key;                   a[j].key=temp.key;               }           }        }    }void QuickSort(ElemType a[], int low, int high)//快速排序 {    int i,j;    ElemType temp;    i=low;    j=high;    temp=a[low];    while(i<j)    {        while(i<j&&temp.key<=a[j].key)        j--;        if(i<j)        {            a[i]=a[j];            i++;        }        while(i<j&&a[i].key<temp.key)        i++;        if(i<j)        {            a[j]=a[i];            j--;        }    }         a[i]=temp;        if(low<i) QuickSort(a,low,i-1);        if(i<high) QuickSort(a,j+1,high);     }void InsertSort(ElemType a[], int n)//插入排序  {     int i,j;     ElemType temp;     for(i=0;i<n-1;i++)     {         temp=a[i+1];         j=i;         while(j>-1&&temp.key<a[j].key)         {             a[j+1]=a[j];             j--;          }         a[j+1]=temp;     } }int main(){       int i,j;       ElemType a[RANDNUM],arr[RANDNUM],iRandNum[RANDNUM];//存放随机数       clock_t first,second; //记录开始和结束时间(以毫秒为单位)       for(i=0;i<RANDNUM;i++)       {//产生1万个随机数            iRandNum[i].key=rand()%RANDNUM;       a[i].key=iRandNum[i].key;            arr[i].key=iRandNum[i].key;       }       first=clock(); //开始时间          BubbleSort(iRandNum,10000);//此处加入排序算法程序        second=clock();//结束时间       printf("冒泡排序时间为%fms ",(double)(second-first)/ CLOCKS_PER_SEC);   //显示排序算法所用的时间        first=clock(); //开始时间          QuickSort(a,0,9999);//此处加入排序算法程序        second=clock();//结束时间       printf("快速排序时间为%fms ",(double)(second-first)/ CLOCKS_PER_SEC);        first=clock(); //开始时间          InsertSort(arr,10000);//此处加入排序算法程序         second=clock();//结束时间        printf("插入排序时间为%fms ",(double)(second-first)/ CLOCKS_PER_SEC);           return 0;                       }

一万个数据,对快速排序,就目前的电脑,不费时间的

#define RANDNUM 40000 //随机数的个数

另外要改(你原来是固定10000的)

 BubbleSort(iRandNum,RANDNUM);//此处加入排序算法程序

 QuickSort(a,0,RANDNUM-1);//此处加入排序算法程序

  InsertSort(arr,RANDNUM);//此处加入排序算法程序

结果为(我是i7 8系列的电脑 )

为什么测试快速排序运行时间总为0,代码如下


你这代码写的也太乱了,怎么看。

下一篇:电脑无网络

上一篇:EXC表中合并计算中的所有引用位置怎么找不到

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?