LEETCODE 912 排序数组

LEETCODE 912 排序数组_第1张图片

class Solution {
public:
    vector<int> sortArray(vector<int>& nums) {
        // // 冒泡
        // bool flag;
        // for(int i=0;i
        // {
        //     flag=0;
        //     for(int j=0;j
        //     {
        //         if(nums[j]>nums[j+1]){
        //             int tmp=nums[j];
        //             nums[j]=nums[j+1];
        //             nums[j+1]=tmp;
        //             flag=1;
        //         }

        //     }
        //     if(!flag)
        //             return nums;
        // }
        // return nums;

        //希尔
        int gap = nums.size()/2;
        while(gap>0)
        {
            for(int i=gap;i<nums.size();i++)
            {
                int tmp=nums[i];
                int j = i;
                while(j>=gap && tmp<nums[j-gap])
                {
                    nums[j] = nums[j-gap];
                    j -= gap;
                }
                nums[j]=tmp;
            }
            gap=gap/2;
        }
        return nums;
        
    }
};

LEETCODE 912 排序数组_第2张图片

你可能感兴趣的:(leetcode,算法)