if (!p) throw \²éÕÒλÖ÷Ƿ¨\; else return p; }
void LinkList::sift(int k, int m) { int i = k, j = 2 * i; while (j <= m) { comparef++; if (j
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; }
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; }