zoukankan      html  css  js  c++  java
  • c++:快速排序(二)

    快速排序:二分 ---尾优化

    #include <iostream>
    #include <QList>
    #include <QDebug>
    using namespace std;
    void qucikSort(QList<int> &list, int start, int end);
    int pascOrder(QList<int> &list,int start,int end);
    int main()
    {
        QList<int> numList;
        numList.push_back(3);
        numList.push_back(5);
        numList.push_back(1);
        numList.push_back(2);
        numList.push_back(10);
        numList.push_back(8);
        numList.push_back(6);
        numList.push_back(7);
        numList.push_back(0);
        numList.push_back(14);
        numList.push_back(9);
        numList.push_back(11);
        numList.push_back(12);
        qucikSort(numList,0,numList.count()-1);
        qDebug()<<numList;
    }
    void qucikSort(QList<int> &list,int start,int end)
    {
        int index;
        while(start < end)
        {
           index = pascOrder(list, start, end);
           qucikSort(list, start, index - 1);
           start=index+1;     //<尾优化
        }
    }
    int pascOrder(QList<int> &list, int start, int end)
    {
        int info = list[start];
        int left = start;
        int right = end;
        while(left < right)
        {
            while(left < right && list[right]>info)
            {
                --right;
            }
            list[left] = list[right];
    
    
            while(left<right  && list[left]<info)
            {
                ++left;
            }
            list[right] = list[left];
        }
        list[left] = info;
        return left;
    }
    不为其他,只为快乐!
  • 相关阅读:
    String方法
    多态
    观察者模式
    ArrayList和LinkList
    唐岛湾
    AForge.Net C#的操作视频,照片读写功能
    JqGrid填坑
    日常点滴
    日常点滴
    EF Core 填坑记录
  • 原文地址:https://www.cnblogs.com/1521299249study/p/11572855.html
Copyright © 2011-2022 走看看