更多关于操作索引的思考
1.5k
等17人参与

在这一章,我向同学们介绍了索引堆。所谓的索引堆,就是数据摆在原地不动,而索引组织成了一个堆的样子。

“数据不动,只操纵索引”,这样的思想在计算机的世界中非常常见。比如我们之前所学习的所有的排序算法,就都能实现成“索引排序”的样子。

比如,对于一个数组 A:

索引:0 1 2 3 4 5 6 7
数据:6 5 1 3 8 2 7 4

我们可以设计一个算法,对 [0 1 2 3 4 5 6 7] 这 8 个索引进行排序,排序后的结果是:

2, 5, 3, 7, 1, 0, 6, 4

因为 A[2] < A[5] < A[3] < A[7] < A[1] < A[0] < A[6] < A[4]

你能不能把课程之前学习的排序算法,改写成为索引排序算法?你实现的索引排序算法,可以基于选择排序,插入排序,归并排序或者快速排序。实际上,任何一种排序算法,都能修改为基于索引的排序。

加油:)


我的作业
去发布

登录后即可发布作业,立即

全部作业

数据加载中...

意见反馈 帮助中心 APP下载
官方微信