1万个元素的数组,90%的元素都是1到100的数,10%的元素是101--10000的数,如何高效排序。

#define RANGE 10000
int* sort(int* arr, int len) {
	int* hashtable = new int[len];
	memset(hashtable, 0, sizeof(int) * len);

	for (int i = 0; i < len; ++i) {
		hashtable[arr[i]]++;
	}
	return hashtable;
}

void printArrayFromHashTable(int* hash, int len) {
	for (int i = 0; i < len; ++i) {
		if (hash[i]) {
			for (int j = 0; j < hash[i]; ++j) {
				cout << i << ' ';
			}
			cout << endl;
		}
	}
}


版权声明:本文为Edwards_June原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。