summaryrefslogtreecommitdiff
path: root/sonstiges/radixSort.cpp
diff options
context:
space:
mode:
authorPaul Jungeblut <paul.jungeblut@gmail.com>2016-01-23 12:30:38 +0100
committerPaul Jungeblut <paul.jungeblut@gmail.com>2016-01-23 12:30:38 +0100
commitf92e9b22b6e37921146afc542fcb0398ac407c47 (patch)
treee3ee5ce12d6b9877ffd2adea20bb2c1b96ca78db /sonstiges/radixSort.cpp
parent1ec427f9cf87481ce6b97a26e5af362325ca0f1a (diff)
Removes section about sorting in linear time.
Diffstat (limited to 'sonstiges/radixSort.cpp')
-rw-r--r--sonstiges/radixSort.cpp24
1 files changed, 0 insertions, 24 deletions
diff --git a/sonstiges/radixSort.cpp b/sonstiges/radixSort.cpp
deleted file mode 100644
index 7ca51f6..0000000
--- a/sonstiges/radixSort.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-//Comparable with sort from <algorithms> in a range from 0 to 5000, for values greater than 5000 use sort
-const int p[10] = {1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000};
-
-int getLongestNumber(vector<int> &a) {
- int res = 0;
- for (int i = 0; i < (int)a.size(); i++) res = max(res, (int)ceil(log10(a[i]) + 1));
- return res;
-}
-
-int getIthDigit(int digit, int i) {
- return (digit / p[i]) % 10;
-}
-
-void radixSort(vector<int> &a) {
- int digits = getLongestNumber(a);
- for (int d = 0; d < digits; d++) {
- vector<int> bucket[10];
- for(int i = 0; i < (int)a.size(); i++)
- bucket[getIthDigit(a[i],d)].push_back(a[i]);
- a.clear();
- for(int i = 0; i < 10; i++)
- copy(bucket[i].begin(), bucket[i].end(), back_inserter(a));
- }
-}