quicksort descending
#include <iostream>
using namespace std;
int partition(int*arr,int lb,int ub){
int pivot=arr[lb];
int start=lb;
int end=ub;
while(start<end){
while(arr[start]>=pivot){
start++;
}
while(arr[end]<pivot){
end--;
}
if(start<end){
int temp;
temp=arr[end];
arr[end]=arr[start];
arr[start]=temp;
}
}
int temp1;
temp1=arr[end];
arr[end]=arr[lb];
arr[lb]=temp1;
return end;
}
void quicksort(int*arr,int lb,int ub){
if(lb<ub){
int loc=partition(arr,lb,ub);
quicksort(arr,lb,loc-1);
quicksort(arr,loc+1,ub);
}
}
int main() {
int arr[10]={9,8,7,6,5,3,4,2,1,0};
quicksort(arr,0,9);
for(int i=0;i<10;i++){
cout<<arr[i]<<" ";
}
return 0;
}
Comments
Post a Comment