基本算法--排序快排代码

tech2022-09-13  97

快排代码:

     分割原理是把所有小于pivot的元素都放到该段最前面,最后把pivot放到所有小于的后面就完成分割操作。

#include<ctime> int random(int n){ return (ll)rand()*rand()%n; } int rand_lr(int l,int r){ return random(r-l+1)+l; } void q_sort(int arr[],int l,int r){ if(l>=r){return ;} if(l+1==r){ if(arr[l]>arr[r]) swap(a[l],a[r]); return ; } int temind=rand_lr(l,r); swap(a[temind],a[r]); int pivot=a[r]; int stind=l; for(int i=l;i<r;i++){ if(a[i]<pivot){ swap(a[i],a[stind]); ++stind; } } swap(a[stind],a[r]); q_sort(arr,l,stind-1); q_sort(arr,stind+1,r); }

 

最新回复(0)