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

    //算法核心思想并不难理解,即取一个值作为参考值,大于等于参考值的放在一边,小于参考值的放在另一边
    //程序实现的核心是对两个指针的操作,针对每一个无序的块使用两个指针,一个从左向右滑动,另一个相反,
    //向右滑动的指针如果碰到一个大于参考值的数,则另一个指针开始向右滑动,直到找到一个小于参考值的数,然后二者交换位置
    #include <iostream>
    using namespace std;
    void myqsort(int* x,int* y)
    {
        int temp,w,* u,*v;
        u=x;v=y;w=*y;
        if(x==y)return;
        while(u!=v)//开始调换元素位置,大于等于w的放在右边,其余放在左边
        {
            if(*u>w)//检查当前u所指向的元素是否大于末尾元素的值,是则执行下面语句块
            {
                //向左查找可以交换的元素
                while(u!=v)
                {
                    if(*v<=w){temp=*u;*u=*v;*v=temp;break;}//找到这样一个元素,则立即进行交换
                    v--;
                }
            }
            if(u==v)break;
            u++;
        }
        myqsort(x,u-1);
        myqsort(u,y);
    }
    int _tmain(int argc, _TCHAR* argv[])
    {
        int a[]={8,992,35,78,123,6,5,1,10,88,99,123,754,1000,1,0,55};
        myqsort(a,a+sizeof(a)/4-1);
        for(auto& x:a)cout<<x<<endl;
        return 0;
    }
    相信世界是平的
    谨记四个字“修身养性”
    大江东去浪淘尽英雄,再牛B的人物最后也是一掊土
    向善不是目的,而是抚慰心灵,更多的感受幸福,感谢别人给你行善的机会
    相信老子的话:万物生于有,有生于无,一切的道理都源于一个无法证明的假设
    我是好是坏就自然而然的摆在那里,并不会因为别人的评价而改变什么,我也不需要别人用一张纸来说明我什么,世间最难得的是自由



    支持大额赞助:
  • 相关阅读:
    HDU-1240 Asteroids! (BFS)这里是一个三维空间,用一个6*3二维数组储存6个不同方向
    HDU-1026 Ignatius and the Princess I(BFS) 带路径的广搜
    HDU-1700 Points on Cycle
    HDU-4515 小Q系列故事——世界上最遥远的距离
    Star
    HDOJ5441(图论中的并查集)
    HDOJ5438(图的各个连通分量遍历)
    HDOJ5044(最近公共祖先)
    C++输入输出知识
    JAVAmap容器基本使用
  • 原文地址:https://www.cnblogs.com/sky-view/p/3229077.html
Copyright © 2011-2022 走看看