快速排序算法详解
了解数据结构与算法:数组、链表、排序算法等 #生活技巧# #工作学习技巧# #编程语言学习路径#
#include<iostream>
#include<time.h>
#include<stdlib.h>
using namespace std;
#define N 15
void print(int a[],int n)
{
int i=1;
while(i<=N)
{
cout<<a[i]<<" ";
i++;
}
cout<<endl;
}
void s_swap(int &a,int &b)
{
int t=a;
a=b;
b=t;
}
int s_less(int &a,int &b)
{
return a<b?1:0;
}
int partion_v1(int a[],int l,int r)
{
int i=l-1;
int j=r;
int v = a[r];
while(1)
{
while(s_less(a[++i],v));
while(s_less(v,a[--j]))
{
if(j==l)
{
break;
}
}
if(i>=j){
break;
}
s_swap(a[i],a[j]);
}
return i;
}
int partion(int a[],int l,int r)
{
int x=a[r];
int i=l-1;
for(int j=l;j<r;j++)
{
if(x>=a[j]){
i++;
s_swap(a[i],a[j]);
}
}
s_swap(a[i+1],a[r]);
return i+1;
}
void quicksort(int a[],int l,int r)
{
if(l<r)
{
int p=partion(a,l,r);
quicksort(a,l,p-1);
quicksort(a,p+1,r);
}
}
void quicksort_v1(int a[],int l,int r)
{
if(r<=l){
return;
}
int p=partion_v1(a,l,r);
quicksort(a,l,p-1);
quicksort(a,p+1,r);
}
int main()
{
int a[N+1];
srand(time(0));
for(int i=1;i<=N;i++)
{
a[i] = rand()%(100*N);
}
quicksort_v1(a,1,N);
print(a,N);
return 0;
}
网址:快速排序算法详解 https://www.yuejiaxmz.com/news/view/343021
相关内容
APS智能排产+运筹优化算法=?【深度学习】深度学习语音识别算法的详细解析
高效日程管理:利用区间合并算法优化活动安排【python LeetCode57】
一张表快速get装修流程顺序!内附新房装修预算表(含超详细建材家电清单),太实用
电镀重量计算方法详解视频教程(计算电镀重量方法视频)
堆垛机重量计算方法详解视频教程(堆垛机重量计算方法视频)
怎样快速清洁微波炉 快速清洁微波炉方法【详解】
如何快速缓解职场压力
解码生活:基础解析算法如何改变我们的世界
动滑轮省力计算方法详解