zoukankan      html  css  js  c++  java
  • C++之算法,快速排序

    快速排序

    思路:

    一个数组,随便选一个做基数,比它大的放他右边,比它小的放它左边,一轮下来就分成两组了,这两组再分别按刚才方法递归。

    具体操作:

    一个数组,第一个做基数取出来存在一个变量里,设置两个游标分别为数组开始和结束,

    开始循环:

    先按照游标从右到左依次选一个和基数比,该数比基数大就把结束游标向左移一位,比基数小的就把该数放到开始游标上去,此时再按照游标从左向右依次选一个数和基数比,该数比基数小就把开始游标向右移一位,比基数大就该数放到结束游标上去,再从新开始循环。

    直到两个游标相等,开始递归。

    int main ()
    {
        int data[] = {34,65,12,43,67,5,78,10,3,70} , k;
        int len=sizeof(data)/sizeof(int);
        quickSort(data , 0 , len-1);
        for (int i = 0; i < len; i++)
        {
            cout<<data[i]<<"
    ";
        }
    }
    
    void quickSort(int array[] , int begin , int end){
        if(begin<end){
            int l = begin , r = end , x = array[begin];
            while(l < r){
                while(l<r && array[r]>=x)
                    r--;
                if(l<r){
                    array[l] = array[r];
                    l++;
                }
                while(l<r && array[l]<x)
                    l++;
                if(l<r){
                    array[r] = array[l];
                    r--;
                }
            }
            array[l] = array[r] = x;
            quickSort(array , begin , r-1);
            quickSort(array , r+1 , end);
        }
    
    }
  • 相关阅读:
    python-ConfigParser模块【读写配置文件】
    MinGW安装和使用
    mybatis批量操作
    SSM框架的简单搭建
    idea录制宏
    数据导出,导入
    JS中调用android和ios系统手机打开相机并可选择相册功能
    get请求中url传参中文乱码问题
    hibernate criteria中Restrictions的用法
    hibernate报错
  • 原文地址:https://www.cnblogs.com/alazalazalaz/p/4076233.html
Copyright © 2011-2022 走看看