기수 정렬을 사용하여 숫자 목록을 정렬하는 프로그램에서 작업하고 있지만 무한 루프라고 생각되는 것에 계속 빠져 들었습니다. 내 주요 정렬 기능 또는 내 계산 기능 중 하나라고 생각합니다. 내가 뭘 잘못하고 있는지에 대한 아이디어가 있습니까?이중 연결리스트를 사용하는 C++ 기수 정렬
void radix_sort(DLList& list)
{
DLList lstRay[10];
int ct = count(list);
int zeros = 0;
int tmp = 0;
int head = 0;
for(;ct >= 0; ct--)
{
while(!list.isEmpty())
{
head = list.deleteHead();
tmp = head/pow(10, zeros);
tmp = tmp % 10;
lstRay[tmp].addToTail(head);
}
for(int x = 0; x <=9; x++)
{
list.append(lstRay[x]);
}
zeros++;
}
}
int count(DLList& list)
{
int ct = 0;
int ct2 = 0;
int tmp = 0;
while(!list.isEmpty())
{
ct = ct2;
tmp = list.deleteHead();
while(tmp >= 0)
{
tmp = tmp/10;
ct2++;
}
if(ct2 < ct)
{
ct2 = ct;
}
}
return ct2;
}