这几道题好难啊,完全不会!求大神解答

kosora曹 2015-07-25 12:03:26
全是证明题,网易云课堂的题目。

1、设a1, a2, …, an为n个不同的数字,如果i<j但是ai>aj, 我们称ai和aj是倒置的,冒泡排序交换输入中两个相邻倒置数的位置,直到没有倒置数为止,从而使得列表排序,假设冒泡排序算法的输入是一个随机序列,等可能地为n个不同数的n!种排列中任意一个,确定使用冒泡排序算法需要纠正倒置数的期望次数。

2、a1, a2, …, an是{1, 2, …, n}的一个随机排列,等可能第位n!中可能排列中的任意一个,当对列表a1, a2, ..., an排序时,元素ai从它当前位置到达排序位置必须一定|ai-i|的距离,求元素必须移动的期望总距离

3、证明:在有n个数的序列中找出最大的数至少需要n-1次比较

4、证明:对于任何只基于比较的查找算法,二分查找是最优的。

5、设计一个对7个元素进行排序的方法,保证其平均比较次数最少,要求证明这个结论
...全文
1115 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dgh200 2016-01-01
  • 打赏
  • 举报
回复
引用 1 楼 li_x1979 的回复:
5 7个元素排序的决策树模型有7!个叶子结点,所以树高为lg(7!) = 13,也就是说至少要比较13次。 先任取3个排序,用到2次比较。再任取3个排序,用到2次比较。合并排序它们的结果,至多6次比较。最后一个元素用二分插入,至多3次比较。
2次比较怎么能排序3个数?
li_x1979 2015-07-30
  • 打赏
  • 举报
回复
1 冒泡排序要进行C(N,2)次比较,每次比较有1/2的概率交换,所以交换操作的期望次数是C(N,2) / 2。 2 下表列出每个元素可能移动的距离: 1 0 1 2 3。。。 n - 1 2 1 0 1 2.。。。 n - 2 。。。 n n - 1 n - 2 0 矩阵里面所有元素加起来再除以n。 3 数学归纳法。假设结论对小于n都成立,则n个数时,前n - 1个数找最大数至少需要n - 2次比较,第n个数要和前n - 1个数的最大数比较1次,所以至少需要n - 1次。 4 首先基于比较的查找算法的下限是lgn。因为二分查找的上限是lgn,所以二分查找是最优的。 5 7个元素排序的决策树模型有7!个叶子结点,所以树高为lg(7!) = 13,也就是说至少要比较13次。 先任取3个排序,用到2次比较。再任取3个排序,用到2次比较。合并排序它们的结果,至多6次比较。最后一个元素用二分插入,至多3次比较。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧