• 题目描述
  • 评论

请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储,下标为0的位置不存储关键码。输入关键码的个数,以及各个关键码,采用快速排序的方法对关键码数组进行排序,输出每轮比较的过程。

输入描述

各个命令以及相关数据的输入格式如下:
第一行输入关键码的个数n
第二行输入n个整型关键码

输出描述

输出关键码比较过程,将需要移动的关键码输出,每轮一行,关键码之间以空格隔开,最后一个关键码后有空格,然后回车,不重复输出,最后将排好序的关键码输出,以空格隔开,最后回车。

输入样例

10
2 5 9 8 7 4 3 10 16 13

输出样例

3 9 4 8
13
2 3 4 5 7 8 9 10 13 16 

思路:略。

通关代码1:

#include<iostream>
#define MAXSIZE 100
using namespace std;int Partition(int *a, int first, int last)//快排划分
{int i = first, j = last, temp;while (i < j){while (i < j && a[i] <= a[j]) j--;if (i < j){temp = a[i];//Swapa[i] = a[j];a[j] = temp;cout << a[i] << ' ';i++;//前游标后移}while (i < j && a[i] <= a[j]) i++;if (i < j){temp = a[i];//Swapa[i] = a[j];a[j] = temp;cout << a[j] << ' ';j--;//后游标前移}}return i;//返回轴值位置
}void Quick(int* a, int first, int last)
{int pivot;//定义轴值if (first >= last) return;else{pivot = Partition(a, first, last);Quick(a, first, pivot-1);Quick(a, pivot+1,last);}
}int main()
{int Data[MAXSIZE];int n;cin >> n;for (int i = 0; i < n; i++)cin >> Data[i];Quick(Data, 0, n-1);for (int i = 0; i < n; i++)cout << Data[i] << ' ';return 0;
}

通关代码2:

#include<iostream>#define Max 1000using namespace std;void quickSort(int* a, int low, int high)
{int i, j, temp;//前后遍历指针和枢纽i = low;j = high;if (low < high){temp = a[low];//设置枢纽:数组中的第一个while (i != j){while (j > i && a[j] >= temp)//先从右往左{--j;}if (i < j){a[i] = a[j];cout << a[i] << ' ';++i;}while (j > i && a[i] <= temp)//再从左往右{++i;}if (i < j){a[j] = a[i];cout << a[j] << ' ';--j;}}//第一次划分结束//开始递归划分a[i] = temp;quickSort(a, low, i - 1);quickSort(a, i+1, high);}
}int main()
{int n; cin >> n;int a[Max];for (int i = 0; i < n; i++)cin >> a[i];//快排过程quickSort(a, 0, n - 1);//输出排序结果for (int i = 0; i < n; i++)cout<< a[i]<<' ';return 0;
}

D-OJ刷题日记:快速排序验证性实验 题目编号:589相关推荐

  1. D-OJ题 直接插入排序验证性实验 题目编号:584

    [D-OJ](直接插入排序验证性实验 题目编号:584) 题目描述 请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储,下标为0的位置不存储关键码.输入关键码的个数,以及各 ...

  2. D-OJ刷题日记:直接插入排序验证性实验 题目编号:584

    请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储,下标为0的位置不存储关键码.输入关键码的个数,以及各个关键码,采用直接插入排序的方法并采用哨兵法对关键码数组进行排序,输 ...

  3. D-OJ刷题日记:起泡排序验证性实验 题目编号:586

    请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储,下标为0的位置不存储关键码.输入关键码的个数,以及各个关键码,采用起泡排序的方法对关键码数组进行排序,输出每轮比较的过程 ...

  4. D-OJ刷题日记:简单选择排序 题目编号:968

    请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储,下标为0的位置不存储关键码.输入关键码的个数,以及各个关键码,采用简单选择排序的方法对关键码数组进行排序,输出每趟比较的 ...

  5. 直接插入排序验证性实验 题目编号:584

    题目要求: 请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储, 下标为0的位置不存储关键码.输入关键码的个数,以及各个关键码,采用直接插入排序 的方法并采用哨兵法对关键码 ...

  6. 【刷题日记】贪心算法经典题目

  7. 【刷题日记】笔试经典编程题目(一)

  8. 【刷题日记】笔试经典编程题目(三)

  9. 【刷题日记】笔试经典编程题目(四)

最新文章

  1. 【Android实战】记录自学自己定义GifView过程,能同一时候支持gif和其它图片!【有用篇】...
  2. delete hive_「挑战30万年薪」 Hive语句详解之从SQL到HQL的应转习惯
  3. 使用spool命令从Oracle导出数据
  4. 机器学习与分布式机器学习_机器学习的歧义
  5. 向三姑六婶解释你在一线城市的工作
  6. 5-1WordCount单词计数
  7. python创建txt文件_Mac怎么创建txt文件?教你设置新建txt的快捷键
  8. Wavesequencer Hyperion for Mac(数字模块化合成器)
  9. RedisTemplate 数据结构 使用方法
  10. 计算机中 b、KB、MB、GB、TB之间的换算关系
  11. 【大兴区亦庄亦庄线东晶国际4居室】自如网
  12. Unity XLua Hotfix热更新配置笔记
  13. 存储-对象存储、文件存储和块存储
  14. 越南VinFast冲刺美股:不到2年亏28亿美元 要与蔚小理比高低
  15. 什么是zigbee?
  16. Python实现基于动态时间规整的股市交易策略测试
  17. 2022世界杯神预测有哪个最神!最后一个富而喜悦到底是谁?
  18. 单向散列函数概述并基于MD5算法对文件哈希值实时监测
  19. 滴滴C2C模式隐忧暴露,神州专车却仍无力逆风翻盘?
  20. Pinpoint作为链路追踪和报警(监控spring boot服务)

热门文章

  1. 四模加持随心用,超低延迟畅快玩——奥恳ES07黑曼巴专业游戏TWS耳机体验测评
  2. 北斗链张蕾:法定数字货币机制研究(上)
  3. CSS系列之盒子阴影box-shadow(CSS3)
  4. 数据库方言Dialect
  5. pytest_04_测试用例setup和teardown
  6. Android下的摄像头驱动开发
  7. MySQL慢查询配置,及解决相关问题
  8. 中国超高分子量聚乙烯产业调研与投资前景报告(2022版)
  9. c语言中多项式的除法,【Luogu4512】多项式除法(FFT)
  10. 高考结束,快收下这份AI专业指南!| 至强非凡问答