Skip to content

Commit 725c1e3

Browse files
authored
简化代码,提升运行效率
1 parent 21d0275 commit 725c1e3

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

Radix-Sort.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,24 @@ int pow10[] = { 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000 };
99

1010
void radix_sort()
1111
{
12-
static int c[10], t[11], _d[ELEMENT_COUNT];
12+
static int c[10], _d[ELEMENT_COUNT];
1313
for (int k = 0; k < 8; k++)
1414
{
1515
for (int i = 0; i < 10; i++)
1616
{
17-
c[i] = t[i] = 0;
17+
c[i] = 0;
1818
}
1919
for (int i = 0; i < n; i++)
2020
{
21-
c[d[i] / pow10[k] % 10 + 1]++;
21+
c[d[i] / pow10[k] % 10]++;
2222
}
2323
for (int i = 1; i < 10; i++)
2424
{
2525
c[i] += c[i - 1];
2626
}
27-
for (int i = 0; i < n; i++)
27+
for (int i = n - 1; i >= 0; i--)
2828
{
29-
int w = d[i] / pow10[k] % 10;
30-
_d[c[w] + t[w]] = d[i];
31-
t[w]++;
29+
_d[--c[d[i] / pow10[k] % 10]] = d[i];
3230
}
3331
for (int i = 0; i < n; i++)
3432
{
@@ -47,7 +45,7 @@ int main()
4745
radix_sort();
4846
for (int i = 0; i < n; i++)
4947
{
50-
printf("%d\n", d[i]);
48+
printf("%d ", d[i]);
5149
}
5250
return 0;
5351
}

0 commit comments

Comments
 (0)