ÔÆÌ⺣ - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

µ±Ç°Î»ÖãºÊ×Ò³ > ±±ÓÊÊý¾Ý½á¹¹ÊµÑé µÚÈý´ÎʵÑé ÅÅÐò

±±ÓÊÊý¾Ý½á¹¹ÊµÑé µÚÈý´ÎʵÑé ÅÅÐò

  • 62 ´ÎÔĶÁ
  • 3 ´ÎÏÂÔØ
  • 2025/7/5 18:40:44

Ô´´úÂ룺ÓÉ3²¿·Ö×é³É //main.cpp

#include using namespace std; #include\#include #include

static int (Sort::*pFunction[7])(long int [])={&Sort::InsertSort,&Sort::ShellSort,&Sort::BubbleSort,&Sort::QuickSort,&Sort::SelectSort,&Sort::HeapSort,&Sort::MergeSort}; char *funcName[7]={\¡¢²åÈëÅÅÐò:\¡¢Ï£¶ûÅÅÐò:\¡¢Ã°ÅÝÅÅÐò:\¡¢¿ìËÙÅÅÐò:\¡¢Ñ¡ÔñÅÅÐò:\¡¢¶Ñ ÅÅ Ðò:\¡¢¹é²¢ÅÅÐò:\

/*****************************ͳ¼ÆÊ±¼äº¯Êý*****************************/ void Statistics(Sort &obj,int i,int j) {

obj.startTime=obj.GetNowTime(); (obj.*pFunction[i])(obj.pRandom1); obj.endTime=obj.GetNowTime();

obj.runtime[i][j]=obj.endTime-obj.startTime; }

/****************************Ö÷µ÷º¯Êý*********************************/ int main() {

Sort obj;

obj.CreateData();

memcpy(obj.pRandom1,obj.pRandom2,(Max+1)*sizeof(long int)); int i(0),j(0);

/*************************ÂÒÐòÐòÁÐ*********************************/ obj.SetTimesZero(); for(i=0;i<7;i++) {

Statistics(obj,i,0);

cout<

memcpy(obj.pRandom1,obj.pRandom2,(Max+1)*sizeof(long int)); }

obj.RecordTimes(0);

/*************************˳ÐòÐòÁÐ*********************************/ obj.SetTimesZero(); for( i=0;i<7;i++)

Statistics(obj,i,1);

µÚ13Ò³

obj.RecordTimes(2);

/*************************ÄæÐòÐòÁÐ*********************************/ obj.SetTimesZero(); for(i=1;i<=Max;i++)

obj.pRandom2[i]=obj.pRandom1[Max+1-i];

memcpy(obj.pRandom1,obj.pRandom2,(Max+1)*sizeof(long int)); for(i=0;i<7;i++) {

Statistics(obj,i,2);

memcpy(obj.pRandom1,obj.pRandom2,(Max+1)*sizeof(long int)); }

obj.RecordTimes(4);

/************************ͳ¼ÆÅÅÐòÊý¾Ý******************************/ obj.PrintStatistics(funcName); return 0; }

//Sort.h

const int Max =50; class Sort {

public: Sort(); ~Sort();

void CreateData(void);

int InsertSort(long int []); int ShellSort(long int []); int BubbleSort(long int []); int QuickSort(long int []);

int QuickSortRecursion(long int [], int ,int); int QuickSortPatition(long int [], int , int ); int SelectSort(long int []);

int HeapSort(long int []);//¶ÑÅÅÐò

void HeapSortSift(long int [], int , int );//ɸѡ int MergeSort(long int []);

void Merge(long int [],long int [], int , int , int );//¹é²¢ÅÅÐò void MergePass(long int [],long int [] , int ); long double GetNowTime(void); void PrintArray(long int*); void SetTimesZero(void); void RecordTimes(int);

µÚ14Ò³

friend void Statistics(Sort &,int ,int); void PrintStatistics(char *[]); friend int main(void); private:

long int *pRandom1; long int *pRandom2;

long double runtime[7][3]; int comparetimes[7]; int movetimes[7]; int timestable[7][6];

long double startTime,endTime; };

//Function.cpp #include\#include #include #include #include #include #include #include #include using namespace std;

/**********************************************************¹¹Ô캯Êý**********************************************************************/ Sort::Sort() {

memset(timestable,0,sizeof(int)*7*6); }

/***********************************************************¹¹ÔìÊý×é**********************************************************************/ void Sort::CreateData() {

pRandom1=new long int[Max+1]; pRandom2=new long int[Max+1]; srand((unsigned)time(NULL));

for(int i = 1; i <= Max;i++ ) pRandom2[i]=rand();

cout<<\Ëæ»úÂÒÐòÊý×éÈçÏ£º\\n\ //Êä³öԭʼÊý×é PrintArray(pRandom2); }

/********************************************************¼òµ¥²åÈëÅÅÐò

µÚ15Ò³

*******************************************************************/ int Sort::InsertSort(long int parray[]) {

int j=0;

for(int i =2; i <= Max;i++) {

parray[0]=parray[i];

comparetimes[0]++;//±È½Ï´ÎÊýͳ¼Æ for(j=i-1;parray[0]

parray[j+1]=parray[j];

movetimes[0]++;//ÒÆ¶¯´ÎÊýͳ¼Æ }

parray[j+1]=parray[0]; movetimes[0]+=2; }

return 0; }

/**********************************************************Ï£¶ûÅÅ***********************************************************************/ int Sort::ShellSort(long int parray[]) {

int j=0;

for(int d=Max/2;d>=1;d/=2) {

for(int i=d+1;i<=Max;i++) {

parray[0]=parray[i]; comparetimes[1]++;

for(j=i-d;j>0 && parray[0]

parray[j+d]=parray[j]; movetimes[1]++; }

parray[j+d]=parray[0]; movetimes[1]+=2; } }

return 0; }

/**********************************************************ðÅÝÅÅ***********************************************************************/ int Sort::BubbleSort(long int parray[]) {

µÚ16Ò³

Ðò

Ðò

ËÑË÷¸ü¶à¹ØÓÚ£º ±±ÓÊÊý¾Ý½á¹¹ÊµÑé µÚÈý´ÎʵÑé ÅÅÐò µÄÎĵµ
  • ÊÕ²Ø
  • Î¥¹æ¾Ù±¨
  • °æÈ¨ÈÏÁì
ÏÂÔØÎĵµ10.00 Ôª ¼ÓÈëVIPÃâ·ÑÏÂÔØ
ÍÆ¼öÏÂÔØ
±¾ÎÄ×÷Õߣº...

¹²·ÖÏí92ƪÏà¹ØÎĵµ

Îĵµ¼ò½é£º

Ô´´úÂ룺ÓÉ3²¿·Ö×é³É //main.cpp #include using namespace std; #include\#include #include static int (Sort::*pFunction[7])(long int [])={&Sort::InsertSort,&Sort::ShellSort,&Sort::BubbleSort,&Sort::QuickSort,&Sort::SelectSort,&Sort::HeapSort,&Sort::MergeSort}; char *funcName[7]={\¡¢²åÈëÅÅÐò:\¡¢Ï£¶ûÅÅÐò:\¡¢Ã°ÅÝÅÅÐò:\¡¢¿ìËÙÅÅÐò:\¡¢Ñ¡ÔñÅÅÐò:\¡¢¶Ñ ÅÅ Ðò:\¡¢¹é²¢ÅÅÐò:\ /*****************

¡Á ÓοͿì½ÝÏÂÔØÍ¨µÀ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩
µ¥Æª¸¶·ÑÏÂÔØ
ÏÞÊ±ÌØ¼Û£º10 Ôª/·Ý Ô­¼Û:20Ôª
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£ºfanwen365 QQ£º370150219
Copyright © ÔÆÌ⺣ All Rights Reserved. ËÕICP±¸16052595ºÅ-3 ÍøÕ¾µØÍ¼ ¿Í·þQQ£º370150219 ÓÊÏ䣺370150219@qq.com