箱子排序

原创 2005年04月24日 20:05:00

// 复杂性为n+range
void BinSort(Chain<Node>& x, int range)
{
 int len=x.Length();
 Node X;
 Chain<Node> *bin;
 bin=new Chain<Node>[range+1];
 // 分配到每个箱子中
 for(int i=1;i<=len;i++)
 {
  x.Delete(1, X);
  bin[X.score].Insert(0,X);
 }
 // 从箱子中收集各元素
 for(int j=range;j>=0;j--)
 {
  while(!bin[j].IsEmpty())
  {
   bin[j].Delete(1,X);
   x.Insert(0,x);
  }
 }
 delete []bin;
}

// 箱子排序可以扩展成基数排序:
// 假定对范围0~999之间的10个整数进行排序。可以先对最低位进行range(0~9)的箱子排序,然后对第二位和第三位依次进行箱子排序。

Ref:<<数据结构,算法与应用>>P113~117

箱子归并排序,个人的发明

  • 2009年06月24日 15:14
  • 6KB
  • 下载

箱子排序

概述:先根据被排序对象的属性值的最小值到最大值建立并编号一连串连续有序的箱;然后遍历一遍需要被排序的对象序列,每遍历到一个对象都根据其属性值找到并装入对应编号的箱子直到遍历完毕,这样会使不同属性值的对...

新手学习数据结构与算法---链表的箱子排序

//箱子排序---Bin Sort //算法的时间复杂度是:O(M+N) /* 算法思想: 第一步:先创建一个单链表 第二步: 创建M 个箱子 第三步:检索单链表的每个结点,...
  • zsjgs
  • zsjgs
  • 2011年10月18日 17:32
  • 655

[C++]数据结构:排序算法Part2----快速排序、归并排序、箱子排序、基数排序

接上篇博文: [C++]数据结构:排序算法Part1----冒泡排序、选择排序、插入排序、堆排序 5.快速排序: 快速排序的核心思想是分而治之算法。所谓的分而治之,简单来说就是把...

STL练习2 实现插入排序,箱子排序和基数排序

使用list实现了排序的中比较简单的插入排序,箱子排序和基数排序,其中,箱子排序和基树排序只能用于数的排序,所以限制还是蛮大的,箱子排序在实际使用中基本上不使用,箱子排序是基数排序的基础,基数排序有M...

常见排序算法——桶排序(箱子排序)bucket Sort

桶排序是一个经典的排序算法,特点是速度快,算法复杂度为O(n),且是稳排,当然也是最耗空间的一种算法。例如: 1)排序一组数[7,3,19,11,6,8,1,15] 最大数是19,那首先创建20个...
  • Mind_V
  • Mind_V
  • 2017年05月08日 22:53
  • 144

c++排序part3:箱子排序、基数排序、排序比较

7.箱子排序 说明一点,箱排序实用价值不大,在此仅适用于作为基数排序的一个中间步骤,所以有必要介绍一下。 我们先来看一个场景需求: 数据库中存储了学生的姓名年龄和成绩,要求将学生按照...

C#入门学习-----推箱子游戏(WPF技术实现)

欢迎大家提出意见,一起讨论! 转载请标明是引用于 http://blog.csdn.net/chenyujing1234 需要源码请与我联系。    编译平台:VS2008 + .Net Fr...

【面试笔试算法】Program 5 : 推箱子 (网易游戏笔试题)

时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 推箱子是一款经典游戏。如图所示,灰色格子代表不能通过区域,蓝色方格是箱子,黑色圆形代表玩家,含有圆点的格子代表目...

linux shell脚本游戏之推箱子

#! /bin/sed -nf #r sokoban.sed - 2002-03-15 aur閘io marinho jargas #r ----------- #r motivated by...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:箱子排序
举报原因:
原因补充:

(最多只允许输入30个字)