| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1087 人关注过本帖
标题:为什么可以用冒泡法解这道题?
只看楼主 加入收藏
Fjun
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-3-30
结帖率:100%
收藏
已结贴  问题点数:18 回复次数:5 
为什么可以用冒泡法解这道题?
设 A 为一个有 n 个数字的集合(n>1),其中所有数字各不相同。
现在允许任意相邻的两个数字相互交换,问最少需要交换几次才能使这个集合
变成一个从小到大排列的有序集合
★数据输入 第一行:单个整数 N,1<=N<=1000
       第二行到第 N+1 行,每行有一个整数 Ai,1<=A[i]<=10^8
★数据输出
一个整数:表示交换的次数
输入示例 输出示例
5      4
3
1
4
5
2

就顺手用冒泡排了一下,冒了多少次泡,正好就是交换的最少次数,
但是这是为什么?正常思路应该是什么样的?
搜索更多相关主题的帖子: 冒泡法 集合 交换 整数 次数 
2017-05-01 21:16
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:1 
9 8 7 6 5 4 3 2 1 0---0 1 2 3 4 5 6 7 8 9这样头尾交换至少需要5次~冒泡法排序不只5次吧~~~听说这种题目一般用广度搜索求解~不知道是不是这样~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-01 21:36
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10538
专家分:42927
注 册:2014-5-20
收藏
得分:4 
只允许任意相邻的两个数交换
2017-05-01 21:42
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:5 
回复 3楼 吹水佬
以下是引用吹水佬在2017-5-1 21:42:45的发言:

只允许任意相邻的两个数交换

对哦~没看清题目~~

最近忙到懒得动脑筋了~直接上百度~~结果答案就是它的逆序数~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-01 21:48
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:8 
还是说一下吧~

只允许任意两个相邻的数交换~

数据单个数排序的最小交换次数是已知的~

冒泡法排序的一个特征就是数据总会是向趋向于目标位置的解~就是说一个数据定位后就不会再改变其位置了~所以不会出现数据移动远离目标位置的情况~固任意相邻两个数交换排序冒泡次数就是其最优解~~~


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-01 22:00
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
生动形象一点就是现在现在有n个带有编号的小球连成一排让你重新按照编号排放。
你当然是把编号最大的球放到最后~然后再放编号第二大的~~~~
这感觉更像插入排序问题~可以用插入排序的移动次数试试~感觉插入排序的移动次数和冒泡排序的冒泡次数是一样的(因为数据变动都是交换两个相邻的数据)~~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-01 22:13
快速回复:为什么可以用冒泡法解这道题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015194 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved