C 中的菱形数组排序

2024-05-11

我有以下 C 语言作业。我基本上需要一种方法而不是解决方案。

我们有一个 13 x 13 的数组。在数组中,我们有一个需要考虑的菱形形状。该菱形之外的所有内容都初始化为 -1(不重要)。下面的 5 x 5 数组示例 -

x x 1 x x 
x 2 2 2 x
3 3 3 3 3
x 4 4 4 x
x x 5 x x

x=-1

现在,在这个数组中,菱形中每个条目的值包含 11 位。 5 个 lsb 包含一个数据(色调),其他 6 个包含另一个数据(直径)。我们需要按行、单调地对色调进行排序,然后按列、单调地对直径进行排序。

执行此操作最有效且最节省内存的方法是什么?由于我们需要保存它,因此最好交换条目而不是创建另一个数组。最后,我们将得到一个排序的菱形数组(仍然带有-1)。提前非常感谢大家!


我不明白你到底想如何重新排序元素

按行,单调地获取色调,然后按列,单调地获取直径

但这里有一些你可能会用到的想法。

  • 您的数组为 13x13(169 个元素);其中,几乎一半 (84) 是空的,因此您可以将它们用作临时存储(例如基数排序 http://en.wikipedia.org/wiki/Radix_sort).
  • 您的值有 11 个有意义的位;真实计算机中的数字有 16 位或 32 位 - 因此您可以使用 5 个(或 21 个,具体取决于您的系统)最高有效位作为临时存储。
  • 使用高 5 位的一种可能的好方法是将 5 LSB(色调)的副本放在那里。在进行正常整数比较时,这将颠倒两个部分的重要性(使色调比直径更重要)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 中的菱形数组排序 的相关文章

随机推荐

  • Xcode 警告引用开发第三方库的用户帐户

    我在我的项目中使用第三方库 BugSense 我已将他们的框架添加到我的项目中 对其进行初始化等 以便一切正常 然而 每次构建项目时 我都会收到大量 40 多个 以下警告 警告 i386 Users genesis Library Deve
  • Android ListView addHeaderView() XML 中定义的预定义视图出现 nullPointerException

    尝试使用addHeaderView and addFooterView for a ListView 如果我尝试使用在 XML 中为页眉或页脚预定义的视图 则会出现空指针异常 但是 如果我使用代码动态创建一个视图 它工作得很好 This d
  • 在 C# 中根据鼠标点击获取活动窗口名称

    我正在尝试使应用程序获取用户单击的窗口的鼠标单击位置和标题 名称 我目前使用的是 LowLevelMouseProc 它提供了良好的结果 但每当我单击 Google chrome 时 它 都会使应用程序崩溃 这是代码 using Syste
  • 如果 1 个 Gremlin 查询中不存在顶点和边,则创建

    我找到以下代码来创建边缘 如果它尚不存在 g V hasLabel V1 has userId userId as a V hasLabel V1 has userId userId2 coalesce bothE link where o
  • Flutter“Mailer”API 多图像附件

    我正在制作一个简单的应用程序 用于从用户获取个人信息和图像数量 然后通过后端邮件 API 通过一键单击按钮发送它们 到目前为止 我可以通过邮件获取和发送 FormData 但我不知道如何发送图像数组 我已经尝试了几个 API 但 Maile
  • 我可以按日期查询 MongoDB ObjectId 吗?

    我知道 ObjectId 包含它们的创建日期 有没有办法查询ObjectId的这方面 将时间戳弹出到 ObjectId 中 http www kchodorow com blog 2011 12 20 querying for timest
  • 如何终止当前正在运行的git进程? [复制]

    这个问题在这里已经有答案了 git commit m 45 fatal Unable to create F SoftifyBD Projects proj 4 CMS Latest contentmanagementsystem git
  • 安卓后退按钮不起作用

    我正在使用 cocos2dx 制作一个小游戏 在游戏的活动中我提供以下函数来处理后退按钮 Override public boolean onKeyDown int keyCode KeyEvent event return super o
  • Http POST 删除 URL 中的端口

    我有一个用 Django 构建的网络应用程序 我目前正在家里的路由器后面的笔记本电脑上运行它 我将路由器配置为将发送到特定端口的所有流量路由到该笔记本电脑 我将 Nginx 作为 Apache 的反向代理 使用 mod wsgi 来运行 D
  • 使用哪个 gradle 文件将应用程序设置为可调试?

    我是android开发新手 我刚刚开始设置我的设备来调试我的应用程序 当经历安卓开发者工具 http developer android com tools device html setting up它说要设置buildTypes deb
  • 如何在 VS Code 中仅提交跟踪文件?

    git status 显示以下三个信息 要提交的变更 分阶段变更 未暂存提交的更改 未暂存更改 未跟踪的文件 我曾经git commit a 它提交 1 和 2 然而VS代码Commit All提交 1 2 和 3 Commit Stage
  • 如何对定义的字符集python中的所有可能的字符串进行加密?

    我试图加密定义的字符集中所有可能的字符串 然后将它们与用户输入给出的哈希进行比较 这就是我目前拥有的 import string from itertools import product import crypt def decrypt
  • 测试期间依赖性不满足

    我有一个运行良好的 Spring Boot 2 0 0 M2 应用程序 我在构造函数上使用自动装配 RequestMapping value rest RestController public class AddressRestContr
  • 在 SQLite 数据库中存储日期时间值的最佳方式(Delphi)

    我将把日期时间值存储在 SQLite 数据库中 使用 Delphi 和 DISqlite 库 数据库的本质是它永远不需要在计算机或系统之间传输 因此互操作性不是一个限制 相反 我的重点是阅读速度 日期时间字段将被索引 我将对其进行大量搜索
  • 我想要 TS 中完全不可变的对象

    我有一些大物体 比如 const a b 33 c 78 99 d e f g true h boom selecta well even deeper than this 还有我想要TSnot让我做 a d e f h boom resp
  • 如何用 unicode 图像替换字符?

    我怎样才能更换一个 来自数据库到碧玉字段的文本中的字符 带有图像 目标如下图所示 就像是 F KN Zusatzinfo DV Einleitungstext replaceAll x254 哪里的x254是红色方块的ascii 代码 但上
  • 程序集比较标志理解

    我正在努力理解汇编程序中的以下代码片段 if EAX gt 5 EBX 1 else EBX 2 在汇编程序中 可以写如下 根据我的书 模拟jge操作说明 https www felixcloutier com x86 jcc您通常会使用
  • 数值在 firestore 中保存为字符串

    我使用这个函数将数据发送到firestore exports professional functions https onRequest request response gt const db admin firestore const
  • 按间隔排列的汉明数

    这是生成汉明数序列 又名常规数字 https en wikipedia org wiki Regular number 5 平滑数 https en wikipedia org wiki Smooth number 基于序列中一个数字到下一
  • C 中的菱形数组排序

    我有以下 C 语言作业 我基本上需要一种方法而不是解决方案 我们有一个 13 x 13 的数组 在数组中 我们有一个需要考虑的菱形形状 该菱形之外的所有内容都初始化为 1 不重要 下面的 5 x 5 数组示例 x x 1 x x x 2 2