快速排序

给定一个整数序列,请按非递减序输出采用快速排序(递归法)的各趟排序后的结果。注意:每趟排序以排序区间的首元素为枢轴(支点)。

输入格式:
测试数据有多组,处理到文件尾。每组测试数据第一行输入一个整数n(1≤n≤100),第二行输入n个整数。

输出格式:
对于每组测试,输出若干行,每行是一趟排序后的结果,每行的每两个数据之间留一个空格。

输入样例:
4
8 7 2 1
输出样例:
1 7 2 8
1 7 2 8
1 2 7 8

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;
const int N = 10010;int a[N];
int n;
void f(int a[],int l,int r)
{int x=a[l],i=l,j=r;if(l>=r) return;while(i<j){while(i<j&&a[j]>=x) j--;a[i]=a[j];while(i<j&&a[i]<=x) i++;a[j]=a[i];}a[i]=x;cout << a[0];for(int i=1;i<n;i++)cout<<' '<<a[i];cout<<endl;f(a,l,i-1);f(a,i+1,r);
}int main()
{while(~scanf("%d",&n)){for(int i=0;i<n;i++)  cin>>a[i];f(a,0,n-1);}return 0;
}

7-8 快速排序 输出每一趟相关推荐

  1. 一趟快速排序的实质结果是什么_快速排序____解释一趟快速排序

    一趟快速排序的算法是: 1)设置两个变量i.j,排序开始的时候:i=0,j=N-1: 2)以第一个数组元素作为关键数据,赋值给key,即 key=A[0]: 3)从j开始向前搜索,即由后开始向前搜索( ...

  2. D-OJ刷题日记:输出直接插入排序每趟比较的过程 题目编号:196

    在教材中直接插入排序的基础之上,加入输出比较过的元素的过程.最后输出排好序的结果. 输入描述 第一行输入待排序记录个数 第二行输入待排序序列 输出描述 输出每一趟比较的过程,每趟占一行输出最后排好序的 ...

  3. JavaScript算法——快速排序

    一.概念 快速排序算法由 C. A. R. Hoare 在 1960 年提出.它的时间复杂度也是 O(nlogn),但它在时间复杂度为 O(nlogn) 级的几种排序算法中,大多数情况下效率更高,所以 ...

  4. java jdk实现快速排序_Java实现快速排序过程分析

    快速排序过程 没有既不浪费空间又可以快一点的排序算法呢?那就是"快速排序"!光听这个名字是不是就觉得很高端呢. 假设我们现在对"52 39 67 95 70 8 25 5 ...

  5. php 面试靠快速排序,搞定PHP面试 - 常见排序算法及PHP实现

    常见排序算法及PHP实现全文代码使用PHP7.2语法编写 0. 五种基础排序算法对比 1. 冒泡排序(Bubble Sort) 冒泡排序 是一种交换排序,它的基本思想是:对待排序记录从后往前(逆序)进 ...

  6. 常用排序:冒泡排序与快速排序详解,看完这篇就够了!风马博客

    常用排序:冒泡排序与快速排序详解. 在排序算法中,冒泡排序和快速排序可以算是排序算法入门必会的两种排序了,今天和大家来分析一下如何快速理解并掌握这两种排序.首先冒泡排序是初学者最常用的排序,所以我们先 ...

  7. 冒泡排序和快速排序的效率比较

    快速排序 快速排序是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数都比另外一部分的所有数都要小,然后再按这个方法对这两部分数据分别进行排序.这里初始化i=-1,p=0,r=7,j从0 ...

  8. 【算法】快速排序算法原理及实现

    1.什么是快速排序算法 快速排序是对冒泡排序的一种改良版,通过一趟排序,把要排序的序列分割成两个部分,一部分的所有数据要比另一部分的数据都小,然后再根据这两部分的数据来进行快速排序.以此来达到整一个数 ...

  9. 分治法:快速排序棋盘覆盖

    目标 使用分治法解决快速排序问题 使用分治法解决棋盘覆盖问题 原理 一.快排原理 排序算法在工作中最常用,也是学习很多其他算法的前置知识,例如在运用二分查找算法之前,我们通常需要保证数据是有序的,如果 ...

最新文章

  1. Primary VLAN
  2. Hibernate(九)HQL查询
  3. Linux扩展SWAP分区
  4. hdu 1081To The Max
  5. 最好用的koa2+mysql的RESTful API脚手架,mvc架构,支持node调试,pm2部署。
  6. 希赛软件设计师视频教程-3.1 进程(第三部分) 标清
  7. 头像星球html,HTML5 Canvas 星球大战黑武士头像
  8. matlab guide 将matlab处理过的图片保存
  9. 蓝桥杯 第七届 JAVA B组 凑算式
  10. 使用广泛的开源PCB文件查看器 Gerbv 含多个严重漏洞
  11. HttpClient短信接口
  12. Java面向对象的编程
  13. 个人使用winRAR时提示我们注册激活怎么解决?
  14. python之获取星期字符串
  15. 淘特,阿里在下沉市场的一把好刀
  16. Loongson2_龙芯灵珑9S2A_usb或硬盘方式安装debian6 [刘工版]
  17. RIME鼠须管保姆级五笔配置教程
  18. python代码直接关机_关机信号在python脚本中运行代码
  19. 系统集成项目管理工程师-法律法规与标准规范
  20. 2020电工(初级)考试题及电工(初级)模拟考试系统

热门文章

  1. Computed property “addToCart“ was assigned to but it has no setter.
  2. java设置xmlns xsi_xml文件中 xmlns xmlns:xsi 等解释
  3. 组播技术基础——组播地址
  4. 文科生学python系列_文科生学Python系列15:泰坦尼克数据1
  5. Spine变色动画在unity中失效的问题
  6. 变量模板smarty模板 入门学习
  7. 128-网络编程:TCP通信的并发(多进程实现并发服务器)
  8. 高端羽绒服价值重构 SKYPEOPLE天空人的新答案
  9. php dropzone.js中文教程,JavaScript 文件拖拽上传插件 dropzone.js 介绍
  10. 老板要的物联网可视化大屏,我30分钟就搞定了