乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 81|回复: 6

[编程交流] vl排序理解。。。

[复制链接]

28

主题

76

帖子

48

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-6 06:59:29 | 显示全部楼层 |阅读模式
大家好,
谁能解释一下这里发生了什么?
 
  1. (setq lst (list 1 5 7 20 4 44 123 15 54 32  7 20 4 44 76 12))
  2. (vl-sort lst
  3.     '(lambda (a b) ( <  (/ a  b) 3)))
  1. (setq lst (list 1 5 7 20 4 44 123 15 54 32  7 20 4 44 76 12))
  2. (vl-sort lst
  3.     '(lambda (a b) ( >  (/ a  b) 3)))

 
我试图了解vl排序是如何工作的。。。
回复

使用道具 举报

uli

4

主题

7

帖子

3

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 07:17:43 | 显示全部楼层
结果是(44 123 54 32 44 76 5 20 4 15 7 20 4 12 1)-我在这个列表中看不到任何顺序。。。。???
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:28:53 | 显示全部楼层
我真的不明白你的分类标准。你试着对数字进行排序,使两个相邻项之间的除法结果小于3?!?
 
这种排序的结果将受到数字的初始顺序的影响,因此完全不可靠:
案例1:
  1. (setq lst (list 1 5 7 20 4 44 123 15 54 32 7 20 4 44 76 12))
  2. (vl-sort lst
  3.     '(lambda (a b) ( >  (/ a  b) 3)))
  4. [color=magenta];Result: (44 123 54 32 44 76 5 20 4 15 7 20 4 12 1)[/color]

案例2:
  1. (setq lst (list 7 20 4 44 76 7 20 4 44 12 123 15 54 1 5 32))
  2. (vl-sort lst
  3.     '(lambda (a b) ( >  (/ a  b) 3)))
  4. [color=magenta];Result: (76 20 44 123 54 4 7 20 4 12 15 32 5 1)[/color]
回复

使用道具 举报

8

主题

38

帖子

25

银币

初来乍到

Rank: 1

铜币
47
发表于 2022-7-6 07:36:26 | 显示全部楼层
要了解vl-sort或vl-sort-i中的内容,您可以在同一论坛上看到我的帖子:http://www.cadtutor.net/forum/showthread.php?77049-用作排序比较运算符的LAMBDA表达式
它显示了如何将排序函数在每次迭代中比较的值打印到控制台。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:49:21 | 显示全部楼层
 
vl sort将根据为每对测试项目提供的比较函数的返回,对给定列表中的项目重新排序。如果比较函数为两个参数返回T,这表明排序列表中第一个参数在第二个参数之前,因此通过比较所有对,vl sort将相应地改变列表顺序。有许多不同的算法使用这种比较排序技术(快速排序、合并排序、冒泡排序等等);vl排序函数实现的特定算法没有文档记录,但我猜想它可能使用了快速排序算法。
 
在理解排序算法的内部工作原理时,您可能会发现这条线索特别有趣。
 
您希望从函数中获得什么结果?
回复

使用道具 举报

28

主题

76

帖子

48

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-6 07:57:54 | 显示全部楼层
事实上,我误会了这种情况。。。这就是为什么我试图理解vl排序中的算法。。。谢谢你,李!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:02:04 | 显示全部楼层
不客气!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 11:21 , Processed in 0.494073 second(s), 66 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表