• 2754: C++习题快速排序


    2754: C++习题-快速排序

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 921  Solved: 406
    [Submit][Status][Web Board]

    Description

     
    以某个数为标准,把比这个数大的都移到它的后面,比这个数小的都移到它的前面,这样它后面的任意一个数都比它前面的任意一个数大,再将这前后两组数再分别重复这一过程,最后就会得到有序的数列;
    补充:如果从大到小排列可以将比这个数大的都移到它的前面,比这个数小的都移到它的后面.
    快速排序从小到大排序算法描述:
    1)设置两个变量first、last,令first等于一组数的第一个数的下标,last等于一组数的最后一个数的下标;
    2)以某个数组元素作为关键数据(这里将这组数的第一个数作为关键数据),赋值给key,即key=A[first];
    3)从last开始向前搜索,即由后开始向前搜索(last--),找到第一个小于key的值A[last],将A[last]给A[first];
    4)从first开始向后搜索,即由前开始向后搜索(first++),找到第一个大于key的A[first],将A[first]给A[last];
    5)重复第3、4步,直到first=last,将key的值给a[first];
    6)将first两边的两组数分别再进行排序,重复1、2、3、4、5步;直到每组只剩一个数排序结束.
     
    现在,我们的题目来了...
     
    输入一组整数,将这组整数从小到大排列。
    部分代码已给定如下,只需要提交缺失的代码。
     
     

    #include <iostream>
    using namespace std;
    void Quicksort(int a[],int low,int high)
    {
        if(low>=high)
        {
            return;
        }
        int first=low;
        int last=high;
        int key=a[first];
        while(first<last)
        {
    ///////////////////////////////////////////////////////////////////
            /*
             请在该部分填写缺少的代码
            */
    ////////////////////////////////////////////////////////////////////
        }
        a[first]=key;
        Quicksort(a,low,first-1);
        Quicksort(a,last+1,high);
    }


    int main()
    {
        int i,a[100],x,n=0;
        cin>>n;
        for(i=0; i<n; i++)
            cin>>a[i];
        Quicksort(a,0,n-1);
        for(i=0; i<=n-1; i++)
            cout<<a[i]<<" ";
        cout<<endl;
        return 0;
    }

     
     
     
     
     

    Input

    输入n和n个整数

    Output

    从小到大输出

    Sample Input

    10
    2 1 3 5 4 6 8 7 9 10
    

    Sample Output

    1 2 3 4 5 6 7 8 9 10 
    while(a[last]>=key&&first<last)
    {
        last--;
    }
    a[first]=a[last];
    while(a[first]<=key&&first<last)
    {
        first++;
    }
    a[last]=a[first];
    

      

     
  • 相关阅读:
    js广告随窗口滚动小案例
    CSS中Float概念相关文章
    图片展示javascript各类型的关系
    ajax调用异常
    设置修改 Apache 文件根目录 (Document Root)
    SQL查询今天与昨天的记录,及本月记录、本周记录
    服务器角色
    javaScript进阶昂贵的集合
    .net实体新解
    数组操作时避免空值出现
  • 原文地址:https://www.cnblogs.com/mjn1/p/9027807.html
Copyright © 2020-2023  润新知