• 快速排序


    排序的思想是冒泡排序的改进,都是通过交换两个值来实现排序
    具体的思想是将一个数字放到正确的位置上(排序后应该在的位置),同时将其他数字也都放到近似正确的位置上,用例子来说明是最好的,下图将56放到正确的位置上,然后把比它小的都放在它左边,比它大的都放在它右边。
     
    程序如下
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    #include<set>
    #include<vector>
    #include<iostream>
    using namespace std;
     
    int find_middle(vector<int>& nums,int left,int right){
        int i=left,j=right;
        int middle_value=nums[i];
        while(i<j){
            for(;i<j;j--){
                if(nums[j]<middle_value){
                    nums[i]=nums[j];
                    break;
                }
            }
            for(;i<j;i++){
                if(nums[i]>middle_value){
                    nums[j]=nums[i];
                    break;
                }
            }
        }
        nums[i]=middle_value;
        return i;
    }
     
    void quick_sort(vector<int>& nums,int left,int right){
        if(left==right) return;
        else{
            int middle=find_middle(nums,left,right);
            if(left<middle)
                quick_sort(nums,left,middle-1);
            if(middle<right)
                quick_sort(nums,middle+1,right);
        }
    }
     
    int main()
    {
        int a[10]={1,3,5,7,9,2,4,6,8,10};
        vector<int> vi(a,a+10);
        for(int i=0;i<vi.size();i++)
            cout<<vi[i]<<" ";
        cout<<endl;
         
        quick_sort(vi,0,9);
        for(int i=0;i<vi.size();i++)
            cout<<vi[i]<<" ";
        cout<<endl;
    }





  • 相关阅读:
    Mybatis-plugin插件的使用
    SpringBoot整合mybatis-pagehelper实现分页
    springboot打war包
    keepalived1.4.0安装启动卸载
    六、nginx 搭建高可用集群
    五、nginx的动静分离
    四、nginx的负载均衡
    linux中mysql忘记root密码如何登陆
    十分钟到你了解OpenStack--nova组件
    docker 中 add 和 copy 的区别
  • 原文地址:https://www.cnblogs.com/gremount/p/5842938.html
Copyright © 2020-2023  润新知