void foursort(void **AA, int size, int (*compar ) (const void *, const void * ) ) { /* // Set host & licence expiration date char* myHost = "ddc2"; int year = 2010; int month = 11; // December = 11 int day = 31; // show allowed host and licence expiration date if ( 0 == AA ) { printf("Licence expires: %d / %d / %d\n", year, month+1, day); printf("Host: %s\n", myHost); exit(0); } // Check whether licence expired time_t now = time(NULL); struct tm *laterx = localtime(&now); laterx->tm_year = year-1900; // = 2010 laterx->tm_mon = month; laterx->tm_mday = day; time_t endTime = mktime(laterx); if ( endTime < now ) { printf(expiration); exit(1); } // Check whether this host is allowed int nameLng = 100; char hostName[nameLng]; int out = gethostname(hostName, nameLng); if ( 0 != out ) { printf("*** Error: cannot get: Host name\n"); exit(1); } out = strcmp(myHost, hostName); if ( 0 != out ) { printf("*** Error: not allowed host\n"); exit(1); } */ // Proceed ! A = AA; compareXY = compar; cut2(0, size-1); }
void expand_dyn(Vertices &R){// diff -> diff with no dyn S[level].i1 = S[level].i1 + S[level - 1].i1 - S[level].i2;//diff S[level].i2 = S[level - 1].i1;//diff while((int)R.size()) { if((int)Q.size() + R.back().d > (int)QMAX.size()){ Q.push_back(R.back().i); Vertices Rp; cut2(R, Rp); if((int)Rp.size()){ if((float)S[level].i1 / ++pk < Tlimit) degree_sort(Rp);//diff color_sort(Rp); S[level].i1++, level++;//diff expand_dyn(Rp); level--;//diff } else if((int)Q.size() > (int)QMAX.size()) QMAX = Q; Q.pop_back(); } else return; R.pop_back(); } }
// invoking 3-layered quicksort // void cut2f(); void callCut2(void **A, int siz, int (*compar ) (const void *, const void * ) ) { // A = AA; // compareXY = compar; cut2(A, 0, siz-1, compar); } // end callCut2