程式碼如下: 但好像記憶體還是爆了,有什麼方向可以減少記憶體配置嗎
#include <stdio.h>
int list[100]={0};
int temp[10][10]={0}, order[10]={0};
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&list[i]);
int N=1;
while(N<=100)
{
for(int i=n-1;i>=0;i--)
{
int lsd = list[i]/N%10;
temp[order[lsd]][lsd]=list[i];
order[lsd]++;
}
for(int i=0;i<10;i++)
order[i]=0;
int k=0;
for(int i=0;i<10;i++)
{
for(int j=9;j>=0;j--)
{
if(temp[j][i]!=0)
{
list[k]=temp[j][i];
k++;
}
}
}
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
temp[i][j]=0;
}
N=N*10;
}
for(int i=0;i<n;i++)
printf("%d ",list[i]);
printf("\n");
}
這題只需要一個100格的陣列
再想想看吧
我被那個解題報告誤導了.....
仔細想一想發現根本不用任何演算法....
感謝你的提示!!!
這題只需要一個100格的陣列
再想想看吧
我被那個解題報告誤導了.....
仔細想一想發現根本不用任何演算法....
感謝你的提示!!!
感謝提示