D-OJ刷题日记:快速排序验证性实验 题目编号:589
2024-05-29 02:59:21
- 题目描述
- 评论
请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为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相关推荐
- D-OJ题 直接插入排序验证性实验 题目编号:584
[D-OJ](直接插入排序验证性实验 题目编号:584) 题目描述 请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储,下标为0的位置不存储关键码.输入关键码的个数,以及各 ...
- D-OJ刷题日记:直接插入排序验证性实验 题目编号:584
请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储,下标为0的位置不存储关键码.输入关键码的个数,以及各个关键码,采用直接插入排序的方法并采用哨兵法对关键码数组进行排序,输 ...
- D-OJ刷题日记:起泡排序验证性实验 题目编号:586
请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储,下标为0的位置不存储关键码.输入关键码的个数,以及各个关键码,采用起泡排序的方法对关键码数组进行排序,输出每轮比较的过程 ...
- D-OJ刷题日记:简单选择排序 题目编号:968
请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储,下标为0的位置不存储关键码.输入关键码的个数,以及各个关键码,采用简单选择排序的方法对关键码数组进行排序,输出每趟比较的 ...
- 直接插入排序验证性实验 题目编号:584
题目要求: 请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储, 下标为0的位置不存储关键码.输入关键码的个数,以及各个关键码,采用直接插入排序 的方法并采用哨兵法对关键码 ...
- 【刷题日记】贪心算法经典题目
- 【刷题日记】笔试经典编程题目(一)
- 【刷题日记】笔试经典编程题目(三)
- 【刷题日记】笔试经典编程题目(四)
最新文章
- 【Android实战】记录自学自己定义GifView过程,能同一时候支持gif和其它图片!【有用篇】...
- delete hive_「挑战30万年薪」 Hive语句详解之从SQL到HQL的应转习惯
- 使用spool命令从Oracle导出数据
- 机器学习与分布式机器学习_机器学习的歧义
- 向三姑六婶解释你在一线城市的工作
- 5-1WordCount单词计数
- python创建txt文件_Mac怎么创建txt文件?教你设置新建txt的快捷键
- Wavesequencer Hyperion for Mac(数字模块化合成器)
- RedisTemplate 数据结构 使用方法
- 计算机中 b、KB、MB、GB、TB之间的换算关系
- 【大兴区亦庄亦庄线东晶国际4居室】自如网
- Unity XLua Hotfix热更新配置笔记
- 存储-对象存储、文件存储和块存储
- 越南VinFast冲刺美股:不到2年亏28亿美元 要与蔚小理比高低
- 什么是zigbee?
- Python实现基于动态时间规整的股市交易策略测试
- 2022世界杯神预测有哪个最神!最后一个富而喜悦到底是谁?
- 单向散列函数概述并基于MD5算法对文件哈希值实时监测
- 滴滴C2C模式隐忧暴露,神州专车却仍无力逆风翻盘?
- Pinpoint作为链路追踪和报警(监控spring boot服务)