对于一个序列进行 从小到大 排序,例如 3 2 5 1 5 2 3,怎么求最少的交换次数。请求类似问题的确切求法。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于一个序列进行 从小到大 排序,例如 3 2 5 1 5 2 3,怎么求最少的交换次数。请求类似问题的确切求法。相关的知识,希望对你有一定的参考价值。

对于一个序列进行 从小到大 排序,例如 3 2 5 1 5 2 3,怎么求最少的交换次数。请求类似问题的确切求法。

1和第1个3交换
后面的2和第1个5交换
后面的3和和倒数第三位的5交换
得1223355
只要三次
类似问题要注意交换的两个数字都应尽量在本位上
如上,3在第4和5是本位,1只有第1是本位,1又是第4位,所以与3交换是最佳的,其它类似追问

我倒,我是想说这是人的算法。而电脑在时间上不一定行得通

参考技术A 交换次数与所选择的排序算法及序列的初始状态有关的。就此例如选直接选择排序,首先选最小的1与第一位置的3交换,2不用交换,然后5与2交换,最后是5与3交换,只用三次交换就可以了

以上是关于对于一个序列进行 从小到大 排序,例如 3 2 5 1 5 2 3,怎么求最少的交换次数。请求类似问题的确切求法。的主要内容,如果未能解决你的问题,请参考以下文章

八大排序-插入排序

JavaScript-数组排序(冒泡排序)

自己整理的算法 希尔排序

寻找最小的K个数

插入排序算法的学习

将五个数的序列排序,从小到大排列,有多少种排法?