Algs4-2.1.2在选择排序中,一个元素最多可能会被交换多少次?
2.1.2在选择排序中,一个元素最多可能会被交换多少次?平均可能会被交换多少次?
答:
1)设对N个元素进行排序,那么有N个位置用来摆放这N个元素。一个元素无论在排序前还是在交换后所处的位置只可能在1至N的某一个位置上,而排序后这个元素也一定在1至N的某个位置k上,当排序前和交换后这个元素没有在排序后的位置k上时就需要进行一次交换,那么一个元素最多交换的次数是指尽可能的在排序前和交换后使这个元素不在位置k上,而这样的位置个数为:除开排序后所在的1个位置的所有其他位置,即N-1个位置。由于算法2.1中的代码中元素自身可以交换,所以最多有N次交换。
例如一个未排序的序列:5 1 2 3 4中元素5就是一个需要最多次交换才能处在排序后的位置的元素。
5 1 2 3 4
1 5 2 3 4
1 2 5 3 4
1 2 3 5 4
1 2 3 4 5
1 2 3 4 5
2)对N个元素进行排序时,最多进行N次交换,每个元素平均交换1次。