91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-25
  • 語言: C/C++
  • 標簽: mergesort??quicksort??

資源簡介

用C/C++語言編程實現歸并分類算法6.3 和快速分類算法6.6。對于快速分類,SPLIT中的劃分元素采用三者A(low),A(high),A((low+high)/2)中其值居中者。 (2)隨機產生20組數據(比如n=5000i,1≤i≤20)。數據均屬于范圍(0,105)內的整數。對于同一組數據,運行快速分類和歸并分類算法,并記錄各自的運行時間(以毫秒為單位)。 (3)根據實驗數據及其結果來比較快速分類和歸并分類算法的平均時間,并得出結論。

資源截圖

代碼片段和文件信息

#include
#include
#include
#include
using?namespace?std;
int?mergesort(int*?Aint?amountint?lowint?high);
int?MERGE(int*?Aint?amountint?lowint?midint?high);
int?quicksort(int*?Aint?lowint?high);
int?SPLIT(int*?Aint?lowint?high);
int?main()
{
int?*array1[20]*array2[20]ij;
//設置array1、array2存放所有組數據的首地址
//若是用一個數組,第一次排序完畢,第二次排序所需時間一定減少(因為比較后不用互換節省時間),故設置了兩個相同的數組,更能比較出誰快誰慢
srand((unsigned)time(NULL));
for(i=0;i<20;i++){
int?*A=new?int?[5000*(i+1)];
int?*B=new?int?[5000*(i+1)];
//數組A與數組B存放每一組的數據,由于各組數據元素個數不相同,故設為動態數組
//數組A與數組B的數據相同
for(j=0;j<5000*(i+1);j++){
A[j]=rand()%100000;//是用隨機數賦值
B[j]=A[j];
}
//將每組數據首地址賦給array
array1[i]=A;
array2[i]=B;
}

//實行算法mergesort
double?TimeStart1=GetTickCount();//記錄排序開始時間
for(i=0;i<20;i++)
mergesort(array1[i]5000*(i+1)05000*(i+1)-1);
double?TimeEnd1=GetTickCount();//記錄排序結束時間
double?TimeUsed1=TimeEnd1-TimeStart1;//計算出排序所需時間
cout<<“算法mergesort排序耗時“<
//實行算法quicksort
double?TimeStart2=GetTickCount();//記錄排序開始時間
for(i=0;i<20;i++)
quicksort(array2[i]05000*(i+1)-1);
double?TimeEnd2=GetTickCount();//記錄排序結束時間
double?TimeUsed2=TimeEnd2-TimeStart2;//計算出排序所需時間
cout<<“算法quicksort排序耗時“<
//比較兩種算法所需時間
if(TimeUsed1==TimeUsed2)
cout<<“兩種算法一樣快!“< if(TimeUsed1 cout<<“mergesort算法較快!“< if(TimeUsed1>TimeUsed2)
cout<<“quicksort算法較快!“<
for(i=0;i<20;i++){
delete?arra

評論

共有 條評論

相關資源