在前边的排序算法(一)中已经分析过选择排序,这里主要是想讲解他的优化版本。
选择排序,是通过每次选择最小的数或者最大的数,然后将它放在它应该出现的位置上。
具体实现过程:将0号下标的数据保存,在之后的数中选择一个最小的数,如果最小的数不是0号数,则将最小的数与0号下标的数进行交换;将1号下标的数进行保存,在之后的数中 选择最小的数,如果最小的数不是1号数,进行交换。以此类推。
下边给出实现代码:
void SelectSort(vector<int>& v)
{
for(int i = 0; i < v.size() - 2; ++i)
{
int k = i;
for(int j = i + 1; j < v.size() - 1; ++j)
{
//找到最小的数的下标
if