C++箱子排序

本文介绍了箱子排序算法,通过将元素分配到不同的链表中实现排序。文章详细阐述了该算法的基本思想,并提供了两种不同的C++实现方式,包括只使用一个箱子数组的实现和作为链表成员函数的实现,涉及到了数据结构和C++编程技巧。
摘要由CSDN通过智能技术生成

箱子排序

实现

把每个箱子用一个链表实现。在进行节点分配之前,每个箱子都是空的。

基本思想

1.从与排序链表的头部开始,逐个删除节点,并把它放到合适的箱子链表的头部
2.收集并连接每个箱子中的节点,产生有序的链表

两种实现

第一种实现:

只使用一个箱子数组

//range 是分数的范围
void BinSort(Chain<Node>& X,int range)
{
   //按分数排序
  int len = X.Length();
  Node x;
  Chain<Node> *bin;//bin是所有的箱子
  bin = new Chain<Node> [range + 1];
  //分配到每个箱子中
  for (int i = 1;i<=len;i++)
  {
   
      X.Delete(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值