冒泡排序与选择排序的优化(2)

if (min == right) {      //  这段代码存在的意义在于可能存在min==right
            min = max;            //  的情况,在上面的arr[right]与arr[max]的
        }                        //  值交换后,arr[left]就应该与arr[max]交换

temp = arr[min];          //
        arr[min] = arr[left];    //  交换最小值到左边
        arr[left] = temp;        //

left++;
        right--;
    }
    return;
}

上面的优化相比于原来的选择排序来说在实现上复杂了一点,但在效率上却好了不少。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ce41376d59d41a0453b9e5821fa1c977.html