Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 选择排序计数交换数_Sorting - Fatal编程技术网

Sorting 选择排序计数交换数

Sorting 选择排序计数交换数,sorting,Sorting,这对吗?5 4 3 2 1的选择排序,我看到2次交换,但小程序正在计算4次交换….我想这是定义问题。他在每个循环的末尾进行交换,即使他在交换一个元素与它自身。在他的情况下,互换将是: 原件:5 4 3 2 1 互换位置1和5:1 4 3 2 5 交换位置2和4:1 2 3 4 5 互换位置3和3:1 2 3 4 5 交换位置4和4:1 2 3 4 5 (由于最后一个元素始终位于正确的位置,因此未对其进行交换) 一个简单的if语句可以用来消除最后两次交换。-5 4 3 2 1(初始状态)-1

这对吗?5 4 3 2 1的选择排序,我看到2次交换,但小程序正在计算4次交换….

我想这是定义问题。他在每个循环的末尾进行交换,即使他在交换一个元素与它自身。在他的情况下,互换将是:

  • 原件:5 4 3 2 1
  • 互换位置1和5:1 4 3 2 5
  • 交换位置2和4:1 2 3 4 5
  • 互换位置3和3:1 2 3 4 5
  • 交换位置4和4:1 2 3 4 5
(由于最后一个元素始终位于正确的位置,因此未对其进行交换)


一个简单的if语句可以用来消除最后两次交换。

-5 4 3 2 1(初始状态)-1 4 3 2 5(交换5和1)-1 2 3 4 5(交换4和2)是的,我同意。将一个元素与自身交换是没有用的。