快速排序法的实现
2023-04-18 15:02:55 时间
/*
快速排序的实现
coder:QPZ
time:2014-12-04
*/
#include <stdlib.h>
#include <time.h>
#include <iostream>
using namespace std;
#define N 10
void Swap(int &a,int &b){
int t;
t=a;
a=b;
b=a;
}
class QuickSort{
private:
int *a;
int n;
public:
QuickSort(int n);
void Quick(int left,int right);
void PrinArr();
};
int main(void)
{
class QuickSort *p=new QuickSort(N);
p->PrinArr();
p->Quick(0,N-1);
p->PrinArr();
return 0;
}
QuickSort::QuickSort(int n){
this->n=n;
this->a=(int *)malloc(n*(sizeof(int)));
srand((unsigned)time(NULL));
for(int i=0;i <n; i++ ){
this->a[i]=rand()%10;
}/*for*/
}
void QuickSort::Quick(int left,int right)
{
int Pivot=a[left];
int Left=left;
int Right=right;
if(left<right){
while(Left<Right){
while(Left<Right&&a[Right]>=Pivot) Right--;
a[Left]=a[Right];
while(Left<Right&&a[Left]<=Pivot) Left++;
a[Right]=a[Left];
}//while(Left<Right)
a[Left]=Pivot;
Quick(left,Left-1);
Quick(Left+1,right);
}//if
}
void QuickSort::PrinArr()
{
for(int i=0; i < n; i++ ){
cout<<this->a[i]<<" ";
}
cout<<endl;
}
相关文章
- 电脑C盘空间还很多,电脑却卡得飞起怎么办。
- C盘系统文件提示损坏怎么办?系统文件损坏怎么修复
- Linux入门教程——VI/VIM 编辑器
- 【Golang每日一练】总目录(不断更新中...)
- hnu 数字电路 实验2.4 4位先行进位加法器
- ChatGPT相关技术必读论文100篇(2.27日起,几乎每天更新)
- 滑动窗口算法
- iHRM项目实战
- 提高代码质量需要看哪些书?
- Flask实现用户登录注册(附前后端源码)
- c盘扩容(实操)
- Git代码提交规范
- Python-pptx Shapes
- 【蓝桥杯嵌入式】ADC模数转换的原理图解析与代码实现(以第十一届省赛为例)——STM32G4
- 计算机毕业设计之 [含论文+答辩PPT+任务书+中期检查表+源码等]S2SH洋酒销售系统[包运行成功]
- 面试官:关于CPU你了解多少?
- Hyperopt调参,返回值注意事项(坑),为什么num_leaves和max_depth会显示0?Python
- 【SSM】Spring对IoC的实现方式DI详讲
- HDFS黑名单退役服务器
- SpringBoot教程(十六) | SpringBoot集成swagger(全网最全)