zoukankan      html  css  js  c++  java
  • 快速排序

    排序的思想是冒泡排序的改进,都是通过交换两个值来实现排序
    具体的思想是将一个数字放到正确的位置上(排序后应该在的位置),同时将其他数字也都放到近似正确的位置上,用例子来说明是最好的,下图将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;
    }





  • 相关阅读:
    ios字符串截取/数据存入数组
    ios字典用字符串输出
    ios身份证key字典排序
    java之接口
    Objective Runtime总结
    iOS GCD 详解
    设计模式和应用场景
    内存管理
    core data
    iOS 开发者证书总结 in-house
  • 原文地址:https://www.cnblogs.com/gremount/p/5842938.html
Copyright © 2011-2022 走看看