原地(原址、就地)排序和稳定排序

不了解这2个概念的同学可能会认为他俩之间有着某种一丝丝的联系,毕竟哲学上讲过万物都是联系的,但是我要说的是他们从科学概念上出发毫无联系。

上一讲就讲过稳定排序,是指在排序算法中,相同值的两个元素,在输入数组中先出现的数在输出数组中也先出现。像冒泡排序,插入排序,基数排序,归并排序等都是稳定排序。

原地(原址、就地)排序是指:基本上不需要额外辅助的的空间,允许少量额外的辅助变量进行的排序。就是在原来的排序数组中比较和交换的排序。像选择排序,插入排序,希尔排序,快速排序,堆排序等都会有一项比较且交换操作(swap(i,j))的逻辑在其中,因此他们都是属于原地(原址、就地)排序,而合并排序,计数排序,基数排序等不是原地排序。

出于俩概念混乱的目的,在此书之,以免忘记。

点赞