四种常见排序算法C++实现

来源:互联网 发布:数据库软件排行 编辑:程序博客网 时间:2024/06/06 09:01
/*冒泡排序 平均时间复杂度:O(N^2)   最优:O(N) 最坏:O(N^2)空间复杂度:O(N)    */template<typename T>void bubble_sort(vector<T> &nums){for (int i = 0; i < nums.size(); ++i)//timesfor (int j = 0; j < nums.size() - i - 1; ++j)//positionif (nums[j] > nums[j + 1])swap(nums[j], nums[j + 1]);}



/*插入排序平均时间复杂度:O(N^2)   最优:O(N) 最坏:O(N^2)空间复杂度:O(N)*/template<typename T>void insert_sort(vector<T> &nums){for (int i = 1; i < nums.size(); ++i)for (int j = i; j > 0; --j)if (nums[j - 1] > nums[j])swap(nums[j], nums[j - 1]);}

/*选择排序平均时间复杂度:O(N^2)   最优:O(N^2) 最坏:O(N^2)空间复杂度:O(N)*/template<typename T>void select_sort(vector<T> &nums){for (int i = 0; i < nums.size(); ++i){int min = i;for (int j = i + 1; j < nums.size();++j)if (nums[j] < nums[min])min = j;swap(nums[i], nums[min]);}}


 
原创粉丝点击