test/radix_sort_test.cc
changeset 466 de16f1f2d228
parent 465 31d224a3c0af
child 467 ba49101c9b07
equal deleted inserted replaced
1:7ac66f832539 2:cc29b9a6ff7a
    97 
    97 
    98   }
    98   }
    99 }
    99 }
   100 
   100 
   101 
   101 
   102 void checkCounterSort() {
   102 void checkStableRadixSort() {
   103   {
   103   {
   104     std::vector<int> data1;
   104     std::vector<int> data1;
   105     generateIntSequence(n, data1);
   105     generateIntSequence(n, data1);
   106 
   106 
   107     std::vector<int> data2(data1);
   107     std::vector<int> data2(data1);
   108     std::sort(data1.begin(), data1.end());
   108     std::sort(data1.begin(), data1.end());
   109 
   109 
   110     counterSort(data2.begin(), data2.end());
   110     stableRadixSort(data2.begin(), data2.end());
   111     for (int i = 0; i < n; ++i) {
   111     for (int i = 0; i < n; ++i) {
   112       check(data1[i] == data2[i], "Test failed");
   112       check(data1[i] == data2[i], "Test failed");
   113     }
   113     }
   114 
   114 
   115     counterSort(data2.begin(), data2.end(), Negate());
   115     stableRadixSort(data2.begin(), data2.end(), Negate());
   116     for (int i = 0; i < n; ++i) {
   116     for (int i = 0; i < n; ++i) {
   117       check(data1[i] == data2[n - 1 - i], "Test failed");
   117       check(data1[i] == data2[n - 1 - i], "Test failed");
   118     }
   118     }
   119 
   119 
   120     counterSort(data2.begin(), data2.end(), negate);
   120     stableRadixSort(data2.begin(), data2.end(), negate);
   121     for (int i = 0; i < n; ++i) {
   121     for (int i = 0; i < n; ++i) {
   122       check(data1[i] == data2[n - 1 - i], "Test failed");
   122       check(data1[i] == data2[n - 1 - i], "Test failed");
   123     }
   123     }
   124   }
   124   }
   125 
   125 
   139 }
   139 }
   140 
   140 
   141 int main() {
   141 int main() {
   142 
   142 
   143   checkRadixSort();
   143   checkRadixSort();
   144   checkCounterSort();
   144   checkStableRadixSort();
   145 
   145 
   146   return 0;
   146   return 0;
   147 }
   147 }