排序->选择排序

2.选择排序

1.选择排序基本思想

  选择排序就是先找到位置不合适的元素,再把它放到最终的位置上,基本思想是:

先找到数组的最小元素,和第一个位置的元素交换,然后在剩余的元素中找到最小的元

素,和第二个位置的元素交换......,直到所有元素都在合适的位置上。

2.代码

template <typename T>
void select_sort(vector<T> &vec)
{
    for(int i = 0;i < vec.size()-1;i++)
            {
                int least = i;
                for(int j = i+1;j < vec.size();j++)
                    if(vec.at(j) < vec.at(least))
                        least = j;
                swap(vec.at(i),vec.at(least));
            }

}

3.时空复杂度分析

  时间复杂度:外层循环执行n-1次,内层循环执行(n-1)-i次,时间复杂度为O(n2);

  空间复杂度:S(1);

 

posted @ 2017-04-12 15:03  是召不是昭  阅读(128)  评论(0编辑  收藏  举报