首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

序列{3,7,6,9,8,1,4,5,2}进行排序的最小交换次数?解决办法

2012-03-26 
序列{3,7,6,9,8,1,4,5,2}进行排序的最小交换次数?序列{3,7,6,9,8,1,4,5,2}进行排序的最小交换次数?这是我

序列{3,7,6,9,8,1,4,5,2}进行排序的最小交换次数?
序列{3,7,6,9,8,1,4,5,2}进行排序的最小交换次数?
这是我在学习数据结构时看到的一道题目,答案是6,我想了半天没想出来,希望各位大虾帮忙~

[解决办法]
该数组的值恰好是1,2,3,4,5,6,7,8,9,因此假定我们认为数组的下标从1开始,则每次只要swap(a[i],a[a[i]])就可以了,恰好6次,如下:
初始: 3,7,6,9,8,1,4,5,2
第一次:6,7,3,9,8,1,4,5,2
第二次:1,7,3,9,8,6,4,5,2
第三次:1,4,3,9,8,6,7,5,2
第四次:1,9,3,4,8,6,7,5,2
第五次:1,2,3,4,8,6,7,5,9
第六次:1,2,3,4,5,6,7,8,9

done!

热点排行