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];

  

 

2754: C++习题-快速排序的更多相关文章

  1. YTU 2754: C++习题-快速排序

    2754: C++习题-快速排序 时间限制: 1 Sec  内存限制: 128 MB 提交: 92  解决: 55 题目描述 以某个数为标准,把比这个数大的都移到它的后面,比这个数小的都移到它的前面, ...

  2. 算法(第四版)C# 习题题解——2.5

    写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 查找更方便的版本见:https ...

  3. 算法(第四版)C# 习题题解——2.3

    写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 查找更为方便的版本见:http ...

  4. 面试 12:玩转 Java 快速排序

    终于轮到我们排序算法中的王牌登场了. 快速排序由于排序效率在同为 O(nlogn) 的几种排序方法中效率最高,因此经常被采用.再加上快速排序思想——分治法也确实非常实用,所以 在各大厂的面试习题中,快 ...

  5. Java 快速排序讲解

    快速排序由于排序效率在同为 O(nlogn) 的几种排序方法中效率最高,因此经常被采用.再加上快速排序思想——分治法也确实非常实用,所以 在各大厂的面试习题中,快排总是最耀眼的那个.要是你会的排序算法 ...

  6. [C#][算法] 用菜鸟的思维学习算法 -- 马桶排序、冒泡排序和快速排序

    用菜鸟的思维学习算法 -- 马桶排序.冒泡排序和快速排序 [博主]反骨仔 [来源]http://www.cnblogs.com/liqingwen/p/4994261.html  目录 马桶排序(令人 ...

  7. 算法与数据结构(十六) 快速排序(Swift 3.0版)

    上篇博客我们主要聊了比较高效的归并排序算法,本篇博客我们就来介绍另一种高效的排序算法:快速排序.快速排序的思想与归并排序类似,都是采用分而治之的方式进行排序的.快速排序的思想主要是取出无序序列中第一个 ...

  8. [算法]——快速排序(Quick Sort)

    顾名思义,快速排序(quick sort)速度十分快,时间复杂度为O(nlogn).虽然从此角度讲,也有很多排序算法如归并排序.堆排序甚至希尔排序等,都能达到如此快速,但是快速排序使用更加广泛,以至于 ...

  9. 排序算法----调用库函数qsort进行快速排序

    功 能: 快速排序 头文件:stdlib.h 用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const ...

随机推荐

  1. Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(1)

    刚学Solr(版本6.7.0),新建一个core时,提示要求schema.xml文件,我找了半天也没在源码包中找到名为schema.xml的文件.这个版本其实用的是managed-schema文件,没 ...

  2. 2017-9-26 NOIP模拟赛

    NOIP 2017 全真模拟冲刺 ---LRH&&XXY 题目名称 那些年 铁路计划 毁灭 题目类型 传统 传统 传统 可执行文件名 years trainfare destroy 输 ...

  3. 字符串游戏(strgame)——博弈

    题目 [题目描述] pure 和 dirty 决定玩 $T$ 局游戏.对于每一局游戏,有 $n$ 个字符串,并且每一局游戏由 $K$ 轮组成.具体规则如下:在每一轮游戏中,最开始有一个空串,两者轮流向 ...

  4. Isolation Forest算法实现详解

    本文介绍的 Isolation Forest 算法原理请参看我的博客:Isolation Forest异常检测算法原理详解,本文中我们只介绍详细的代码实现过程. 1.ITree的设计与实现 首先,我们 ...

  5. Pycharm自动部署项目

    Pycharm自动部署项目 大家好呀,又有几天不见各位了.断更了几天,给大家说声抱歉.清明节大家都挺忙的,有扫墓祭祖的,也有趁小长假去游玩的. 所以,在节后,更新也会照常进行,继续给大家分享本人的一些 ...

  6. 事务隔离实现并发控制:MySQL系列之十

    一.并发访问控制 实现的并发访问的控制技术是基于锁: 锁分为表级锁和行级锁,MyISAM存储引擎不支持行级锁:InnoDB支持表级锁和行级锁: 锁的分类有读锁和写锁,读锁也被称为共享锁,加读锁的时候其 ...

  7. jdb应用

    场景: 外网可以登录远程主机,但是因为安全限制,不能在外网直接访问docker应用的端口,因此不能远程调试.远程主机shell内部可以连接docker应用,也没有图形界面,没有log,考虑使用原始的j ...

  8. [PHP]使用日志进行调试

    两种方法: 1.利用自定义函数: //写日志,打印字符串function writelog($str){ $open=fopen("log.txt","a+") ...

  9. 性能测试学习第二天_性能测试工具概述Loadrunner介绍

    性能测试工具概述Loadrunner介绍 http://www.51testing.com/html/42/n-6542.html 其中,T直接影响用户体验时间 性能测试的原理: 记录一个访问过程的通 ...

  10. c#读取word内容,c#提取word内容

    Post by 54admin, 2009-5-8, Views:575 1: 对项目添加引用,Microsoft Word 11.0 Object Library 2: 在程序中添加 using W ...