Conditions | 7 |
Total Lines | 23 |
Lines | 0 |
Ratio | 0 % |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | class LSD(object): |
||
34 | @staticmethod |
||
35 | def _sort(a, lo, hi, d): |
||
36 | if hi - lo <= 0: |
||
37 | return |
||
38 | |||
39 | count = [0] * (MSD.R+2) |
||
40 | aux = [None] * (hi - lo + 1) |
||
41 | |||
42 | for i in range(lo, hi+1): |
||
43 | count[MSD.char_at(a[i], d) + 2] += 1 |
||
44 | |||
45 | for r in range(0, MSD.R): |
||
46 | count[r+1] += count[r] |
||
47 | |||
48 | for i in range(lo, hi+1): |
||
49 | aux[count[MSD.char_at(a[i], d) + 1]] = a[i] |
||
50 | count[MSD.char_at(a[i], d) + 1] += 1 |
||
51 | |||
52 | for i in range(lo, hi+1): |
||
53 | a[i] = aux[i-lo] |
||
54 | |||
55 | for r in range(MSD.R): |
||
56 | MSD._sort(a, lo + count[r], lo + count[r+1] -1, d+1) |
||
57 | |||
62 | return ord(text[d]) |