快速排序算法详解

发布时间:2024-12-02 05:00

了解数据结构与算法:数组、链表、排序算法等 #生活技巧# #工作学习技巧# #编程语言学习路径#

#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装修流程顺序!内附新房装修预算表(含超详细建材家电清单),太实用
电镀重量计算方法详解视频教程(计算电镀重量方法视频)
堆垛机重量计算方法详解视频教程(堆垛机重量计算方法视频)
怎样快速清洁微波炉 快速清洁微波炉方法【详解】
如何快速缓解职场压力
解码生活:基础解析算法如何改变我们的世界
动滑轮省力计算方法详解

随便看看