排序->选择排序
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);