00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include "metislib.h"
00015
00016
00017
00018
00019
00020
00021
00022
00023 void BucketSortKeysInc(ctrl_t *ctrl, idx_t n, idx_t max, idx_t *keys,
00024 idx_t *tperm, idx_t *perm)
00025 {
00026 idx_t i, ii;
00027 idx_t *counts;
00028
00029 WCOREPUSH;
00030
00031 counts = iset(max+2, 0, iwspacemalloc(ctrl, max+2));
00032
00033 for (i=0; i<n; i++)
00034 counts[keys[i]]++;
00035 MAKECSR(i, max+1, counts);
00036
00037 for (ii=0; ii<n; ii++) {
00038 i = tperm[ii];
00039 perm[counts[keys[i]]++] = i;
00040 }
00041
00042 WCOREPOP;
00043 }
00044