c++Êý¾Ý½á¹¹ÊµÑéÁ´±íÅÅÐò

if (p->data > p->next->data) { turn(p, p->next); pos = p->next; } p = p->next; } p = front->next; } QueryPerformanceCounter(&t2); //²âºóÌø¶¯´ÎÊý double d = ((double)t2.QuadPart - (double)t1.QuadPart) / ((double)feq.QuadPart);//ʱ¼ä²îÃë cout << \²Ù×÷ʱ¼äΪ£º\ << d << endl; }

4.Ñ¡ÔñÅÅÐò£º

ÿÌËÅÅÐòÔÙ´ýÅÅÐòµÄÐòÁÐÖÐÑ¡Ôñ¹Ø¼üÂë×îСµÄÔªËØ£¬Ë³ÐòÌí¼ÓÖÁÒÑÅźõÄÓÐÐòÐòÁÐ×îºó£¬ÖªµÀÈ«²¿¼Ç¼ÅÅÐòÍê±Ï¡£ void LinkList::SelectSort() { LARGE_INTEGER t1, t2, feq; QueryPerformanceFrequency(&feq); //ÿÃëÌø¶¯´ÎÊý QueryPerformanceCounter(&t1); //²âÇ°Ìø¶¯´ÎÊý node * s = front; while (s->next->next) { node * p = s; node * index = p; while (p->next) { comparef++; if (p->next->data < index->next->data) index = p; p = p->next; } insert(index, s); s = s->next; } QueryPerformanceCounter(&t2); //²âºóÌø¶¯´ÎÊý double d = ((double)t2.QuadPart - (double)t1.QuadPart) / ((double)feq.QuadPart);//ʱ¼ä²îÃë cout << \²Ù×÷ʱ¼äΪ£º\ << d << endl; }

5.¶ÑÅÅÐò£º

ÀûÓÃÇ°Ò»Ì˱ȽϵĽá¹ûÀ´¼õÉٱȽϴÎÊý£¬Ìá¸ßÕûÌåµÄЧÂÊ¡£

ÆäÖÐͨ¹ýÁ´±í´¢´æÁËÒ»¿ÃÊ÷¡£ Ñ¡ÔñʹÓÃС¸ù¶Ñ½øÐÐÅÅÐò¡£ void LinkList::sift(int k, int m) { int i = k, j = 2 * i; while (j <= m) { comparef++; if (jdata>Get(j + 1)->data)) j++; if (Get(i)->data < Get(j)->data) break; else { turn(Get(i), Get(j)); i = j; j = 2 * i; } } }

void LinkList::heapsort(int n) { LARGE_INTEGER t1, t2, feq; QueryPerformanceFrequency(&feq); //ÿÃëÌø¶¯´ÎÊý QueryPerformanceCounter(&t1); //²âÇ°Ìø¶¯´ÎÊý for (int i = n / 2; i >= 1; i--) sift(i, n); for (int i = 1; i < n; i++) { turn(Get(1), Get(n - i + 1)); sift(1, n - i); } QueryPerformanceCounter(&t2); //²âºóÌø¶¯´ÎÊý double d = ((double)t2.QuadPart - (double)t1.QuadPart) / ((double)feq.QuadPart);//ʱ¼ä²îÃë cout << \²Ù×÷ʱ¼äΪ£º\ << d << endl; }

ÆäÖжÑÅÅÐòÖÐÐèÒªÖªµÀº¢×Ó½ÚµãºÍ¸¸Ç׽ڵ㴦µÄÖµ£¬¹ÊÉèÖÃÁ˺¯Êý»ñÈ¡i³öµÄÖ¸Õë¡£ node*LinkList::Get(int i) { node*p = front->next; int j = 1; while (j != i&&p) { p = p->next;

}

j++;

if (!p) throw \²éÕÒλÖ÷Ƿ¨\; else return p; };

6.Êä³ö½á¹ûµÄº¯Êý£º

void tell(LinkList &a, LinkList &b, LinkList &c, LinkList &d, LinkList &e) { a.print(); comparef = 0; movef = 0; a.InsertSort(); cout << \ÅÅÐò½á¹û£º\; a.print(); cout << \²åÈëÅÅÐò·¨£º Compare£º\ << setw(3) << comparef << \ Move£º\ << setw(3) << movef << endl; comparef = 0; movef = 0; b.BubbleSort(); cout << \¸Ä½øÐÍðÅÝÅÅÐò·¨£º Compare£º\ << setw(3) << comparef << \ Move£º\ << setw(3) << movef << endl; comparef = 0; movef = 0; c.QSort(); cout << \¿ìËÙÅÅÐò·¨£º Compare£º\ << setw(3) << comparef << \ Move£º\ << setw(3) << movef << endl; comparef = 0; movef = 0; d.SelectSort(); cout << \¼òµ¥Ñ¡ÔñÅÅÐò·¨ Compare£º\ << setw(3) << comparef << \ Move£º\ << setw(3) << movef << endl; comparef = 0; movef = 0; e.heapsort(10); cout << \¶ÑÅÅÐòËã·¨ Compare£º\ << setw(3) << comparef << \ Move£º\ << setw(3) << movef << endl; }

7.ͳ¼Æʱ¼äµÄº¯Êý£º #include {

LARGE_INTEGER t1, t2, feq; QueryPerformanceFrequency(&feq); //ÿÃëÌø¶¯´ÎÊý

QueryPerformanceCounter(&t1); //²âÇ°Ìø¶¯´ÎÊý node * p = front->next; //Òª²åÈëµÄ½ÚµãµÄÇ°Çý

QueryPerformanceCounter(&t2); //²âºóÌø¶¯´ÎÊý double d = ((double)t2.QuadPart - (double)t1.QuadPart) / ((double)feq.QuadPart);//ʱ¼ä²îÃë

cout << \²Ù×÷ʱ¼äΪ£º\ << d << endl; };

2.3 ÆäËû

Ëã·¨µÄʱ¼ä¸´ÔӶȣº ÅÅÐò·½·¨ Ö±½Ó²åÈëÅÅÐò ¿ìËÙÅÅÐò ¸Ä½ø°æðÅÝÅÅÐò Ñ¡ÔñÅÅÐò ¶ÑÅÅÐò Ëæ»úÐòÁеÄƽ¾ùÇé¿ö O(n2) ×îºÃÇé¿ö O(n) ×Çé¿ö O(n2) O(n2) O(n2) O(n2) ¸¨Öú¿Õ¼ä O(1) O(nlog2n) O(n2) O(n2) O(nlog2n) O (n) O(n2) O(log2n) ~O(n) O(1) O(1) O(nlog2n) O(nlog2n) O (nlog2n) O(1) 3. ³ÌÐòÔËÐнá¹û

1.Á÷³Ìͼ£º

¿ªÊ¼ ³õʼ»¯ÕýÐòÁ´±í£¬µ÷Óø÷ÀàÅÅÐò£¬²¢Êä³öÔËÐнá¹û ³õʼ»¯ÄæÐòÁ´±í£¬µ÷Óø÷ÀàÅÅÐò£¬²¢Êä³öÔËÐнá¹û ³õʼ»¯Ë³ÐòËæ»úµÄÁ´±í£¬µ÷Óø÷ÀàÅÅÐò£¬²¢Êä³öÔËÐнá¹û ½á Êø

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ì滻Ϊ@)