选择排序为什么要运营中间商

img

很多地方介绍选择排序都会用到中间变量,为什么需要运用中间变量

这段代码中的 x 并不是中间商,而是指当前循环中待排序数列中的最小值的索引。具体来说,它在每次循环中记录了当前待排序数列中的最小值的位置,最后再将其与待排序数列的起始位置交换,从而实现选择排序的目的。

选择排序的思路是将待排序数列分为已排序和未排序两部分,每次从未排序部分中找到最小值并将其放到已排序部分的末尾。而在这个过程中,需要用到 x 来记录当前未排序部分中最小值的位置,从而方便进行后续的交换操作,将最小值放到已排序部分的末尾。

因此,在选择排序算法中, x 所代表的含义是待排序数列中的最小值的索引,而不是中间商。

数组看成是一个个抽屉,现需将其中的两个抽屉a b 里物品互换,你会怎么做呢,先将 a 抽屉物品拿出放在一个地方腾空 a 抽屉,再将 b 抽屉的物品搬到 a 抽屉里,再将先前放在外面的 a 抽屉的物品放到 b 抽屉里,这个临时摆放的地方就是中间变量的作用。

为了交换数据啊,没有第三方,怎么在交换过程中保留之前的数据呢?

a 和 b 要交换东西,需要 a 或 b 之一先将东西保管到 c 那里,然后,没有被保管的一方将东西交给另一人,最后将保管的东西还给没有保管的那个人,有些语言里带有交换函数,则不需要中间商,函数本身代替了中间商