题解 | #排序#

排序

http://www.nowcoder.com/practice/2baf799ea0594abd974d37139de27896

快速排序
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 将给定数组排序
     * @param arr int整型vector 待排序的数组
     * @return int整型vector
     */
    vector<int> MySort(vector<int>& arr) {
        // write code here
        quickSort(arr,0,arr.size()-1);
        
        return arr;
    }
    
    void quickSort(vector<int>& arr,int left, int right){
        
        if(left>=right){
            return;
        }
        
        int temp = arr[left];
        int i = left;
        int j = right;
        
        while(i<j){
            
            while(i<j && arr[j] >= temp){
               j--; 
            }
            
            while(i<j && arr[i] <= temp ){
                i++;
            }
            if(i<j){
                swap(arr,i,j);
            }
           
        }
        
        arr[left] = arr[i];
        arr[i] = temp;
        
        quickSort(arr, left, i-1);
        quickSort(arr, i + 1, right);
        
    }
    
    void swap(vector<int> & arr, int i, int j){
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;   
    }
    
    
};


算法解析 文章被收录于专栏

这里主要是算法岗的自我思路总结

全部评论

相关推荐

10-18 13:01
已编辑
西安理工大学 C++
小米内推大使:建议技能还是放上面吧,hr和技术面试官第一眼想看的应该是技能点和他们岗位是否匹配
点赞 评论 收藏
分享
感性的干饭人在线蹲牛友:🐮 应该是在嘉定这边叭,禾赛大楼挺好看的
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务