找回密码
 register

QQ登录

只需一步,快速开始

[*LUA4*] [Lua基础]sort排序函数 学习实战练习题

[复制链接]

[*LUA4*] [Lua基础]sort排序函数 学习实战练习题

[复制链接]
Waylee

主题

0

回帖

7744

积分

仙帝

积分
7744
Waylee 2024-11-6 01:34 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×

实战练习题

  1. 升序和降序结合排序 编写一个函数,接收一个包含正数和负数的表(例如{5, -3, 8, -1, 2}),首先将所有正数按升序排列,然后将所有负数按降序排列,要求正数排在前,负数排在后,排序后的表应为:{2, 5, 8, -1, -3}

  2. 按字符串字母顺序和长度混合排序 对一个字符串表(例如 {"apple", "kiwi", "book", "active"})进行排序,要求按照字母顺序升序排列,遇到字符串长度相同的情况下,则按长度降序排列。编写代码实现该排序。

  3. 使用自定义比较函数实现自定义优先级排序 编写一个排序函数,将包含数值和字符串的混合表(例如 {5, "apple", 3, "banana", 8})按照以下规则排序:

    • 数值排在字符串之前
    • 数值按升序排序
    • 字符串按字母顺序排列
  4. 对嵌套表排序 给定一个包含嵌套表的表(例如 {{name="Alice", score=90}, {name="Bob", score=85}, {name="Charlie", score=90}}),请编写代码按以下规则进行排序:

    • 先按 score 从高到低排序
    • 如果分数相同,则按 name 的字母顺序排序
  5. 对具有多种键值的数据进行排序 编写一个函数,接收一个学生成绩表(例如 {{name="Alice", math=90, english=85}, {name="Bob", math=85, english=92}, {name="Charlie", math=85, english=85}}),要求按以下规则排序:

    • 先按 math 分数从高到低排序
    • 如果 math 分数相同,再按 english 分数从高到低排序
    • 如果 english 分数也相同,再按 name 的字母顺序升序排列
  6. 稳定排序实现 在 Lua 4.0 中使用 sort 函数并不稳定,请实现一个基于插入排序的稳定排序函数,并对下列表进行排序:local items = {{value=3}, {value=1}, {value=3}, {value=2}}确保在排序相同 value 的元素时,它们的相对顺序保持不变。

  7. 带过滤的排序 给定一个包含多个整数的表(例如 {5, -1, 0, 7, -3, 2}),编写一个函数,首先过滤掉所有负数,然后对剩下的正数和零进行升序排序。最终的结果应该是:{0, 2, 5, 7}

  8. 根据自定义规则对混合类型表排序 编写代码对包含字符串和数值的混合表(例如 {3, "banana", 5, "apple", "grape", 2})进行排序,按以下规则:

    • 字符串按照长度排序,长度相同的按字母顺序排列
    • 数值按降序排序
    • 数值排在字符串之前
  9. 排序员工列表 给定一个包含员工信息的表(例如 {{name="Alice", age=30, salary=4000}, {name="Bob", age=25, salary=4000}, {name="Charlie", age=25, salary=5000}}),请编写代码进行以下排序:

    • 先按 salary 从高到低排序
    • 如果 salary 相同,则按 age 从小到大排序
    • 如果 age 也相同,则按 name 的字母顺序排列
  10. 处理含缺失值的表排序 给定一个包含可能有 nil 值的表(例如 {5, nil, 3, 7, nil, 2}),请编写代码,忽略 nil 值并对其他数值进行升序排序。最终结果为:{2, 3, 5, 7}

雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |网站地图|天天打卡

GMT+8, 2024-11-23 16:23 , Processed in 0.069552 second(s), 8 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表