7-8 快速排序 输出每一趟
快速排序
给定一个整数序列,请按非递减序输出采用快速排序(递归法)的各趟排序后的结果。注意:每趟排序以排序区间的首元素为枢轴(支点)。
输入格式:
测试数据有多组,处理到文件尾。每组测试数据第一行输入一个整数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)设置两个变量i.j,排序开始的时候:i=0,j=N-1: 2)以第一个数组元素作为关键数据,赋值给key,即 key=A[0]: 3)从j开始向前搜索,即由后开始向前搜索( ...
- D-OJ刷题日记:输出直接插入排序每趟比较的过程 题目编号:196
在教材中直接插入排序的基础之上,加入输出比较过的元素的过程.最后输出排好序的结果. 输入描述 第一行输入待排序记录个数 第二行输入待排序序列 输出描述 输出每一趟比较的过程,每趟占一行输出最后排好序的 ...
- JavaScript算法——快速排序
一.概念 快速排序算法由 C. A. R. Hoare 在 1960 年提出.它的时间复杂度也是 O(nlogn),但它在时间复杂度为 O(nlogn) 级的几种排序算法中,大多数情况下效率更高,所以 ...
- java jdk实现快速排序_Java实现快速排序过程分析
快速排序过程 没有既不浪费空间又可以快一点的排序算法呢?那就是"快速排序"!光听这个名字是不是就觉得很高端呢. 假设我们现在对"52 39 67 95 70 8 25 5 ...
- php 面试靠快速排序,搞定PHP面试 - 常见排序算法及PHP实现
常见排序算法及PHP实现全文代码使用PHP7.2语法编写 0. 五种基础排序算法对比 1. 冒泡排序(Bubble Sort) 冒泡排序 是一种交换排序,它的基本思想是:对待排序记录从后往前(逆序)进 ...
- 常用排序:冒泡排序与快速排序详解,看完这篇就够了!风马博客
常用排序:冒泡排序与快速排序详解. 在排序算法中,冒泡排序和快速排序可以算是排序算法入门必会的两种排序了,今天和大家来分析一下如何快速理解并掌握这两种排序.首先冒泡排序是初学者最常用的排序,所以我们先 ...
- 冒泡排序和快速排序的效率比较
快速排序 快速排序是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数都比另外一部分的所有数都要小,然后再按这个方法对这两部分数据分别进行排序.这里初始化i=-1,p=0,r=7,j从0 ...
- 【算法】快速排序算法原理及实现
1.什么是快速排序算法 快速排序是对冒泡排序的一种改良版,通过一趟排序,把要排序的序列分割成两个部分,一部分的所有数据要比另一部分的数据都小,然后再根据这两部分的数据来进行快速排序.以此来达到整一个数 ...
- 分治法:快速排序棋盘覆盖
目标 使用分治法解决快速排序问题 使用分治法解决棋盘覆盖问题 原理 一.快排原理 排序算法在工作中最常用,也是学习很多其他算法的前置知识,例如在运用二分查找算法之前,我们通常需要保证数据是有序的,如果 ...
最新文章
- Primary VLAN
- Hibernate(九)HQL查询
- Linux扩展SWAP分区
- hdu 1081To The Max
- 最好用的koa2+mysql的RESTful API脚手架,mvc架构,支持node调试,pm2部署。
- 希赛软件设计师视频教程-3.1 进程(第三部分) 标清
- 头像星球html,HTML5 Canvas 星球大战黑武士头像
- matlab guide 将matlab处理过的图片保存
- 蓝桥杯 第七届 JAVA B组 凑算式
- 使用广泛的开源PCB文件查看器 Gerbv 含多个严重漏洞
- HttpClient短信接口
- Java面向对象的编程
- 个人使用winRAR时提示我们注册激活怎么解决?
- python之获取星期字符串
- 淘特,阿里在下沉市场的一把好刀
- Loongson2_龙芯灵珑9S2A_usb或硬盘方式安装debian6 [刘工版]
- RIME鼠须管保姆级五笔配置教程
- python代码直接关机_关机信号在python脚本中运行代码
- 系统集成项目管理工程师-法律法规与标准规范
- 2020电工(初级)考试题及电工(初级)模拟考试系统
热门文章
- Computed property “addToCart“ was assigned to but it has no setter.
- java设置xmlns xsi_xml文件中 xmlns xmlns:xsi 等解释
- 组播技术基础——组播地址
- 文科生学python系列_文科生学Python系列15:泰坦尼克数据1
- Spine变色动画在unity中失效的问题
- 变量模板smarty模板 入门学习
- 128-网络编程:TCP通信的并发(多进程实现并发服务器)
- 高端羽绒服价值重构 SKYPEOPLE天空人的新答案
- php dropzone.js中文教程,JavaScript 文件拖拽上传插件 dropzone.js 介绍
- 老板要的物联网可视化大屏,我30分钟就搞定了