मैं कोड निम्नलिखित है, लेकिन यह केवल अहस्ताक्षरित ints के लिए काम करता है और अपने लक्ष्य को एक कोड है जो सभी ints के लिए काम करेगा लिखने के लिए है ...नकारात्मक मूल्यों पर क्रमबद्ध गणना का उपयोग करना?
void CountingSort(vector<int> & a, vector<int> & b)
{
int k=*max_element(a.begin(),a.end());
k++;
vector <int> c(k);
for (int i=0;i<a.size();i++)
c[a[i]]++;
for (int i=1;i<k;i++)
c[i]=c[i]+c[i-1];
for (int i=0;i<a.size();i++)
{
b[c[a[i]]-1]=a[i];
c[a[i]]--;
}
}
मैं कैसे बदल सकता हूँ यह सब अभिन्न प्रकार के लिए काम करने के लिए?
आप या तो जोर होना चाहिए कि आपका आदानों ('A') खाली या नहीं सेशन ऐसा नहीं कर रहे हैं। अन्यथा जब आप कम से कम इसकी अपेक्षा करते हैं तो आप अपने प्रोग्राम को क्रैश करेंगे। –
आम तौर पर इनपुट एल्गोरिदम को सक्रिय करने और इनपुट और आउटपुट को बदलने के लिए साबित करना एक अच्छा विचार है। जब तक यह सीखने और टिंकरिंग उद्देश्यों के लिए नहीं है: डी –