行业协会网站模板,品牌建设的最高境界,深圳高端网站定制建设,开发一个应用程序75. 颜色分类 - 力扣#xff08;LeetCode#xff09; 题目不追求稳定 可以选择选择排序 这是我没看教程代码之前写的 有点复杂了 我还把元素后移了
class Solution {
public:void sortColors(vectorint nums) {int min_num_index -1;int min_num 3;for(int i…75. 颜色分类 - 力扣LeetCode 题目不追求稳定 可以选择选择排序 这是我没看教程代码之前写的 有点复杂了 我还把元素后移了
class Solution {
public:void sortColors(vectorint nums) {int min_num_index -1;int min_num 3;for(int i 0; i nums.size(); i ){ //确保全部有序for (int j i; j nums.size(); j ){ //选择最小值if ( nums[j] min_num ){min_num nums[j];min_num_index j;}}for (int j min_num_index; j i ; --j ){ //开始插入 元素后移nums[j] nums[j - 1];}nums[i] min_num;min_num_index -1;min_num 3;}}
}; 其实可以直接交换位置就可以 将起始位置和最小元素交换 就可以了 实现如下
class Solution {void selectionSort( vectorint 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;}}//找到最小元素 和第一个未排序的交换位置int tmp nums[i];nums[i] nums[min];nums[min] tmp;}}
public:void sortColors(vectorint nums) {selectionSort(nums);}
};