private static int compress() { cmp_n cmp_num = new cmp_n(); Array.Sort(a, 1, n, cmp_num); a[1].idx = 1; for (int i = 2; i <= n; i++) { if (a[i].num == a[i - 1].num) { a[i].idx = a[i - 1].idx; } else { a[i].idx = a[i - 1].idx + 1; } } int len = a[n].idx; cmp_ind cmp_index = new cmp_ind(); Array.Sort(a, 1, n, cmp_index); return(len); }
private static int compress() { cmp_n cmp_num = new cmp_n(); Array.Sort(a, cmp_num); a[0].idx = 1; for (int i = 1; i < n; i++) { a[i].idx = a[i - 1].idx; if (a[i - 1].num != a[i].num) ++a[i].idx; } int len = a[n - 1].idx; cmp_ind cmp_index = new cmp_ind(); Array.Sort(a, cmp_index); return len; }