设为首页 加入收藏

TOP

基数排序的优雅实现
2019-07-09 00:10:29 】 浏览:12
Tags:基数 排序 优雅 实现

明天补充

 

 1 template <typename It, typename Radix>
 2 void radix_sort(It _begin, It _end, Radix _radix, int _pass)
 3 {
 4     auto begin = _begin;
 5     std::vector<std::vector<std::remove_reference_t<decltype(*_begin)>>> temp0(_radix()), temp1(_radix());
 6     auto src = &temp0;
 7     auto dst = &temp1;
 8     for (; begin != _end; ++begin)
 9         (*src)[_radix(*begin, 0)].push_back(*begin);
10     for (int pass = 1; pass != _pass; ++pass)
11     {
12         for (auto& v : *dst)
13             v.clear();
14         
		    
 
			
e="color: #0000ff;">for
(const auto& v: *src) 15 for (const auto& i : v) 16 (*dst)[_radix(i, pass)].push_back(i); 17 std::swap(src, dst); 18 } 19 for (const auto& v : *src) 20 for (const auto& i : v) 21 { 22 *_begin = i; 23 ++_begin; 24 } 25 }

 


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Qt之股票组件-自选股--列表可以拖.. 下一篇DFS(二):骑士游历问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(217) }